Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Учите матчасть: почему стоит изучать туториалы перед работой с облаками и кому это особенно важно

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


Миграция компаний в российские облака набирает активные обороты — по итогам 2023 года объем рынка облачных услуг в России показал прирост около 34% и достиг отметки в 121 млрд рублей. Такой спрос на облачные сервисы отчасти обусловлен погоней за преимуществами облаков: снижение порога входа в ИТ, повышение доступности современных инструментов и вычислительных ресурсов, упрощение задач администрирования и управления. Вместе с тем на пути к корректной миграции и желанным преимуществам компании нередко сталкиваются с непониманием принципов и особенностей работы в облачной среде.

Рассказываем, как эту проблему стараются решить облачные провайдеры, зачем нужны туториалы и кому важно их изучать. 
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 6

TOTP без смартфона

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

Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.

Беглый поиск вывел меня на утилиту oathtool: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.

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

YouTube Shorts из терминала. Как автоматизировать создание видео с помощью FFMPEG и Bash

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

Привет, Хабр! Продолжаю серию материалов о своей «хакерской» игре. Ранее я рассказывал об ее процессе разработки, а сегодня затрону не менее важную часть — маркетинг.

Для продвижения игры я начал публиковать Shorts на YouTube, но это отнимало много времени и ресурсов. Будучи инженером, я стараюсь автоматизировать рутинные задачи, поэтому сделал решение, которое самостоятельно нарезает видео на 60-секундные фрагменты. Подробнее — под катом.
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 15

Почему в 2024 году у кого-то ещё нет CRM?

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

Энто как же, вашу мать, 
Извиняюсь, понимать?
/Л. Филатов/

Представьте себе: вы приходите в офис компании, а там бухгалтер сидит над главной книгой, правой рукой попеременно откладывает ручку и щёлкает деревянными костяшками на больших счётах. Предварительные данные записаны карандашом и, если что, стираются огромным серо-голубым ластиком «Архитектор». Часть оборотных средств лежит в сейфе в кабинете бухгалтера, а за остальными он или она ходит пару раз в месяц в банк, где заполняет от руки платёжное поручение из специального ящичка. Скорее всего, вы решите, что видите сон из детства или какой-то бред (зависит от года рождения). И для 2024 года это и правда бред. Но поставить компьютеры каждому сотруднику не значит начать работать продуктивно, с другим результатом. Вот это вполне себе данность для компаний малого и даже среднего бизнеса.

Читать далее
Всего голосов 30: ↑25 и ↓5 +20
Комментарии 7

Истории

Где аналитику данных искать стажировки в России и зарубежом? + более 40 горящих стажировок

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

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

👉 3 месяца стажировки в самом неприглядном месте лучше, чем то же время в поисках “идеальной” вакансии

👉 Стажировка в резюме выглядит привлекательнее учебных проектов

👉 После стажировки есть возможность трудоустройства в компанию

Читать больше и найти стажировку
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 0

Context receivers — новые extension functions

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

Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в OzonID SDK. Но обо всём по порядку.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 5

«В черном-черном кабинете»: как в Европе начали перехватывать и расшифровывать письма на государственном уровне

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

На тему тайны переписки есть шутка про школьника, который не прочел письмо Онегина к Татьяне, поскольку это нарушение статьи 138 УК. Однако ранее везде действовал противоположный негласный закон — вскрывать и просматривать любую корреспонденцию. Для этого в XVII веке во Франции, а следом и во всей Европе были созданы специальные подразделения со зловещим названием «черные кабинеты» (cabinet noir). Попутно их деятельность подстегнула бурное развитие и выход криптографии на государственный уровень. 

Мы побеседовали с Анастасией Ашаевой, кандидатом исторических наук и старшим научным сотрудником московского Музея криптографии. Она рассказала о начале эпохи «черных кабинетов» и том, что это были за структуры, какой вклад они внесли в государственные дела, дипломатию и вообще жизнь людей. Зашла речь и о шифрах того времени, а также интересных случаях, когда работа cabinet noir повлияла на ход истории. 

Читать далее
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 28

Kotlin Coroutines. Часть 1: Первое погружение

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

Привет, Хабр!

Меня зовут Соловьев Андрей, я Java-разработчик в «Рексофт». Сегодня мы поговорим про Kotlin Coroutines. Это моя первая серьезная публикация, и я буду рад вашему фидбеку.

Ну что ж, давайте начинать!

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

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

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

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

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

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 8

Диплом специалиста ИБ. Часть №5 — Несанкционированный доступ к IoT-устройствам с BLE

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

Привет, Хабр!

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

Эта статья является пятой и заключительной в цикле “Диплом специалиста ИБ”, в рамках которого я рассказываю про свой опыт написания выпускной квалификационной работы на программе высшего образования “Компьютерная безопасность”. В предыдущей статье я рассказывал про написание мобильного приложения "Smart Connect" для взаимодействия с ранее разработанными IoT-устройствами (SmartLight и SmartPulse). В этой статье я расскажу про то, как я получал несанкционированный доступ к этим устройствам.

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

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 7

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

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильей. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • К чему приводят распространённые ошибки с элементом <label>;
  • Лучший лайфхак с inputmode="numeric" улучшающий мою жизнь;
  • Как пользователи скринридера понимают, что модальное окно открыто.

Давайте начнём!

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

Нужен ли продакт в ML-команде? Мнение изнутри

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

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

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

В ML все работает иначе. Команда включается уже на этапе исследования, погружается в бизнес-цели и техническую постановку задачи. Именно исследования занимают львиную долю времени дата-сайентистов, и только после начинается разработка. 

Ну, или не начинается. Или разработка начинается, но совсем не той идеи, которая была вначале.

Я — Саша Пургина, руковожу развитием продуктов на основе данных в Lamoda Tech. В этой статье я расскажу на примере Lamoda, почему разработка ML-продуктов — это сложность и риск. И приведу примеры ошибок, когда хороший продакт в команде может увеличить шансы на успех, имея определенные знания и навыки.

Серебряной пули не ждите, но пара интересных мыслей должна найтись!

Читать далее
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 2

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

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

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

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

Читать далее
Всего голосов 142: ↑139 и ↓3 +136
Комментарии 161

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн

Нормализация событий информационной безопасности и как ее можно выполнять с помощью языка eXtraction and Processing

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

Всем привет! На связи Михаил Максимов, я — ведущий эксперт департамента развития технологий в R&D Positive Technologies. За плечами у меня многолетний опыт по развитию экспертизы в нашей системе MaxPatrol SIEM и процессов вокруг нее. И сегодня я хочу поговорить про один из видов экспертизы в продуктах этого класса — правилах нормализации. Если вы новичок в этом направлении и ранее вам не приходилось сталкиваться на практике с SIEM-системами и правилами для нее — не пугайтесь, основы этой темы мы тоже затронем 😊

Что нас ждет:

🔻определимся с тем, что же это такое — событие информационной системы, какие разновидности событий бывают;

🔻узнаем, что такое нормализация событий и какие этапы можно в этом процессе выделить, рассмотрим нюансы, с которыми можно столкнуться;

🔻детально разберем язык eXtraction and Processing (XP) для задач нормализации, лежащий в основе правил MaxPatrol SIEM, и посмотрим на примеры кода правил разной сложности;

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

Итак, приступим
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1

C3D Collision Detection: представление детектора столкновений в составе C3D Toolkit

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

Сергей Белёв, старший математик‑программист, C3D Labs, знакомит с новым компонентом C3D Toolkit — модулем C3D Collision Detection, рассказывает о том, что детектор столкновений представляет собой изнутри, и о том, какие возможности он предоставляет пользователям.

Детектор столкновений — новый компонент инструмента C3D Toolkit. В статье перечислим математические задачи, которые поставлены перед детектором, узнаем его основной функционал, рассмотрим несложный пример, демонстрирующий интерфейс модуля, и обратимся к планам и дорожной карте.

Обнаружение столкновений подразумевает постановку следующих математических задач. Первая — это возможность уметь находить пересечения между собой среди множества объектов и делать это быстро, без поиска самого пересечения. Требуется оперативно отвечать на соответствующий вопрос — «да, пересекаются» / «нет, не пересекаются». Следующая задача состоит в классификации касаний между собой этого множества объектов. Каждое касание является пересечением, но не наоборот, и важно уметь выделять этот частный случай пересечения. Помимо этого, актуальна задача поиска минимального расстояния между сборками тел и телами, а также задача классификации взаимного расположения объектов. Примером служит детектирование «вложения тел» («тело в теле»), недавно внедренное нами в ответ на многочисленные запросы пользователей. Важно отметить, что все эти задачи нужно уметь решать как в статике, так и в динамике.

Модуль C3D Collision Detection, во‑первых, реализует «эффективные» алгоритмы решения всех поставленных задач — как в статических сценах, например контроль зазоров, так и в динамических сценах, в частности контроль соударений между элементами сборки. Во‑вторых, у нас есть возможность тонкой настройки всех формулируемых задач — можно даже создавать их комбинации. В‑третьих, исходя из необходимости быстро детектировать касание/пересечение, применяется принципиально иной подход, чем в булевой операции: мы не строим какие‑либо дополнительные объекты.

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

Борьба с энтропией в e-com. Как поддерживать актуальными данные о товарах в вечно меняющемся мире

Время на прочтение 10 мин
Количество просмотров 499

Всё течёт, всё изменяется. Особенно информация — она очень быстро устаревает. В e‑com неактуальные данные о товарах могут сильно подпортить клиентский опыт. Если удовлетворенность пользователей — важный фокус вашей работы, мне есть чем поделиться:)

Всем привет! Я Григорий Фрольцов, Product Lead машинного обучения в команде контента в СберМаркете. В этой статье я расскажу, какие «сюрпризы» могут происходить с данными об ассортименте, а также о том, с помощью каких продуктовых решений мы эти сложности решаем. Цель моей работы — добиваться максимально актуальной информации на витринах сервиса: с помощью ML и не только.

Расскажу про типовые и нетиповые проблемы. Опишу, какие инструменты используем, чтобы минимизировать рассинхрон в передаче знаний между оффлайн‑точкой и онлайн‑площадкой для торговли. Если вы аналитик или биздев в e‑com, продакт‑менеджер интернет‑магазина или работаете над эффективностью операций, точно найдёте для себя интересный инсайты.

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

«Чтобы достичь индустриального уровня западных стран, нужно поставить конкретную задачу. Ее никто никому не ставит»

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

«Анекдот, характеризующий наш промышленный подход: если индусу поставить задачу через месяц что‑то сделать, то через месяц он принесет идиотскую программу, которая будет плохо работать. А если русскому математику поставить аналогичную задачу — через месяц сделать программу, примерно через 25 дней он пришлет сообщение, что задача поставлена неправильно и ее надо ставить совершенно по‑другому». О чем это мы? Через призму юмора и науки говорим о нейронных сетях, искусственном интеллекте, приводя лишь отрывок из нового выпуска подкаста «Синий экран смерти». В программе принял участие Владимир Львович Арлазаров — советский и российский ученый, доктор технических наук, член‑корреспондент РАН, директор по науке Smart Engines.

В ходе беседы пионер в области искусственного интеллекта в СССР и мире рассказал о работе над программой «Каисса», которая 50 лет назад победила на первом чемпионате мира среди компьютерных программ, поделился мнением о научном обмене и высказал теории о будущем искусственного интеллекта.

Читать далее
Всего голосов 25: ↑21 и ↓4 +17
Комментарии 11

Использование Agile Scrum в SAP-проектах

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

Пожалуй, нет более популярной темы для обсуждения, чем применение Agile в проектах SAP. Несмотря на то, что принципы гибкой разработки были сформулированы ещё в 2001 году [1], их использование в настоящее время становится как никогда востребованным. Связано это в первую очередь с тем, что последнее десятилетие знаменуется массовым использованием информационных технологий (далее – ИТ) в повседневной жизни: порталы государственные услуг, интернет-магазины, электронное правительство и многое другое. Вышесказанное требует как грамотной разработки программного обеспечения (далее – ПО), так и не менее искусного его внедрения. 

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 0

Эффективный Dart: Руководство по стилю

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про руководство по стилю в Dart!

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

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

Стандартное отклонение и стандартная ошибка: две статистики с похожими названиями, но разными смыслами

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

Я читаю курс статистического мышления магистрам, и одна тема вызывает у них явные затруднения — чем стандартное отклонение отличается от стандартной ошибки, и в каких случаях, применять ту или иную статистику. Думаю, будет интересно поговорить об этом в блоге ЛАНИТ.

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