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

Разработка

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

GigaAM: класс открытых моделей для обработки звучащей речи

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

Салют, Хабр! Ранее мы в SberDevices анонсировали предобученную на русском языке модель GigaAM (Giga Acoustic Model) и её дообученные состояния под распознавание речи (GigaAM-CTC) и определение эмоций (GigaAM-Emo). Сегодня же делимся с сообществом весами моделей и примерами использования.

Приглашаем под кат погрузиться в self-supervised learning для звучащей речи и оценить возможности предобученных моделей!

Читать далее
Всего голосов 23: ↑26.5 и ↓-3.5+30
Комментарии17

Распознаем голосовые сообщения Telegram без СМС и пересылок ботам

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

Как всем известно, люди делятся на две категории:

1. Те, кто любит отправлять голосовые сообщения

2. Те, кто кто надеются, что для первых приготовлен отдельный котел

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

Читать далее
Всего голосов 31: ↑33.5 и ↓-2.5+36
Комментарии35

Расшифровка BitLocker — добыча ключа из микросхемы TPM

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

Подключение сниффера к модулю TPM по шине LPC

Полнодисковое шифрование BitLocker в ОС Windows считается довольно надёжным способом сохранения данных. По умолчанию оно использует алгоритм Advanced Encryption Standard (AES) в режиме сцепления блоков (CBC) или в режиме подстроенной кодовой книги с кражей шифротекста (XTS) на базе xor-encrypt-xor (XEX) со 128- или 256-битным ключом.

В теории это довольно крепкая схема. Проблема только в том, что секретный ключ BitLocker хранится в Trusted Platform Module (TPM), а в некоторых случаях (на некоторых компьютерах) его можно извлечь, получив физический доступ к устройству.
Читать дальше →
Всего голосов 23: ↑24.5 и ↓-1.5+26
Комментарии39

Развертываем peer-to-peer чат с голосом, видео, шарингом экрана, файлов и паролем

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

Эта секция написана уже после статьи, чтобы читатель посмотрел, а надо ли ему что-то отсюда или нет, но это забавное приключение, как всегда.

Что будет ниже:

Поиск open source решения для общения голосом, шаринга экрана, включения видео и чатов в режиме peer-to-peer, без лишних бекендов
Запуск этого решения в открытую в github pages
Заворачивание этого решения на приватный сервер
Простенькое закрытие доступа туды через basic http auth
Заключение с описанием некоторых замечаний и потенцевальных возможностей

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

Истории

Самые полезные библиотеки JS для красивых анимаций

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

Интересное в исполнении приложение всегда сможет привлечь внимание, поскольку мы любим, когда красиво. Но что стоит за этим "красиво"? И начинка, и внешний вид. Сегодня я бы хотела поговорить о внешнем виде, ведь встречают по одежке. А конкретно - про анимации.

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

Мы поговорим о библиотеках JavaScript упрощающих добавление этих анимаций для разработчиков, делая приложения более приятными.

Приятного прочтения :-)

Читать далее
Всего голосов 29: ↑29.5 и ↓-0.5+30
Комментарии6

Германия снова делает попытку перехода с Windows и MS Office на Linux и LibreOffice. Почему не получилось в прошлый раз?

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

На днях стало известно о том, что в Германии реализуется проект, цель которого — перевести многие тысячи компьютеров в госучреждениях на открытое ПО. В частности, вместо Windows от Microsoft власти собираются установить один из дистрибутивов Linux, а Microsoft Office заменят на LibreOffice.

Инициатива в целом неплохая. Но это уже не первая попытка немцев перейти на открытое ПО. И предыдущие заканчивались не очень хорошо. Подробности — под катом.

Читать далее
Всего голосов 53: ↑52.5 и ↓0.5+52
Комментарии286

Управляем умным домом Home Assitant через Алису и без интернета. Часть 1

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

В этой статье я бы хотел рассказать о том, как можно управлять умным домом и всеми устройствами (не только Zigbee) в Home Assistant даже без подключения к интернету.

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

Для дома и офиса: 5 моделей мини-ПК, позволяющих решать разные задачи

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

Производители электронных устройств продолжают выпускать все новые и новые модели. Миниатюрные ПК — вовсе не исключение. Кажется, что это разнообразие просто бесконечно. В подборке — модели, которые привлекли мое внимание по какой-либо причине. Например, производительность, необычный корпус или что-то еще. Все самое интересное — под катом.
Читать дальше →
Всего голосов 36: ↑36.5 и ↓-0.5+37
Комментарии39

Лучшее время для инди-игр и скандал со Sweet Baby Inc: что происходит с игровой индустрией

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

В своей новогодней статье с итогами про видеоигры я сказал, что 2023 год стал лучшим годом в истории компьютерных игр. В статье вы могли прочесть небольшой обзор: 8 игр, которые, на мой субъективный взгляд, стали лучшими за 2023 год. Но в 2023 году вышло чуть больше, чем 8 игр. Точнее, вышло более 14 тысяч игр, согласно данным со Steam, то есть почти по 50 новых игр в день.

Даже при большом желании мне бы физически не удалось поиграть во все эти игры, не говоря уже о том, чтобы пройти их. За таким количеством игр не только не сможет угнаться ни один человек, но даже ни один игровой сайт. Даже крупнейшие сайты в отрасли не могут позволить себе редакционную команду, способную играть по 50 игр в день, чтобы найти и описать те, которые заслуживают внимания. Реально, это даже не десятая часть игр. И не в последнюю очередь потому, что из этих 50 игр 49 окажутся полным шлаком.


Если сравнивать с 2022 годом, то в 2023 году вышло на 2000 игр больше, и на целых 5000 игр больше, чем пять лет назад. Нет никаких оснований предполагать, что этот рост уменьшится в ближайшее время. И игры продолжают разрабатываться. Только на начало марта 2024 года уже выпущены 3300 игр. Это говорит о том, что в 2024 году будет не меньше игр, чем в 2023, если не больше.

В этой статье мне хочется поговорить об отличной возможности для независимых AA-игр и инди-разработчиков вырваться вперёд, оставив позади крупнобюджетные AAA-игры, и про скандал с нарративной консалтинговой компанией.
Читать дальше →
Всего голосов 40: ↑33.5 и ↓6.5+27
Комментарии33

Конструкторы-самозванцы в Kotlin

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

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

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

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

Самодельная механическая клавиатура с трекболом на базе DactylManuform

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

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

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

Про решаемость пятнашек

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

Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.

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

Читать далее
Всего голосов 71: ↑72 и ↓-1+73
Комментарии46

Эффект Монреаля: почему языкам программирования нужен Царь стилей

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

Давайте представим нереалистичный сценарий, где вы выбираете язык программирования для проекта, который в перспективе станет очень большим. Допустим, это будет набор сервисов в монорепозитории, над которыми работает более 100 человек. Чтобы сделать этот сценарий ещё менее реалистичным, предположим, что вы игнорируете типичные ограничения, например, не учитываете, сможете ли использовать сборщик мусора, и впишется ли поставленная задача в конкретный стек технологий.

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

Какое подмножество C++ или Kotlin вы используете? Что вы предпочтёте: project.toml или requirements.txt? Теперь у вашего языка есть возможность поэтапной типизации с помощью аннотаций типов. Хотите ей воспользоваться? Как вы реализуете конкурентность: с помощью многопоточности, Tokio или std::async?

Чем более экспрессивный язык, тем сложнее всё становится. И здесь на сцену выходит Go. И речь не только о gofmt, но и о его стандартной библиотеке и согласованности. В Kotlin вам приходится гадать, что лучше использовать для ошибок: исключения или объекты Result? В случае же Go вам всё ясно – ищем err. Да, это многословно, но зато предсказуемо.

Экспрессивные языки прекрасны, но часто создают путаницу. Вы можете использовать богатый и комплексный язык, поддерживающий миллион способов реализации одного и того же. Именно это я хочу вам показать. Как же сохранить всю эту мощь, но уменьшить беспорядок? Как избежать возникновения 500 поддиалектов? Но прежде, чем переходить к решениям, обсудим Scala.
Читать дальше →
Всего голосов 50: ↑52 и ↓-2+54
Комментарии22

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

Детки, не учитесь кодить. Вместо этого освойте моделирование

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

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

Представьте себе ситуацию. Скоро истекут сроки подачи документов в колледж. Очередная партия новичков изберет профессию, адепты которой постоянно задаются вопросом: «А нужны ли будут программисты через год... через пять лет... или через десять лет?». И хотя горячие дебаты на этот счет уже улеглись, в воздухе висит немой вопрос: не настанет ли час, когда крупные языковые модели, такие как ChatGPT, заменят нас на поприще написания кода. Неважно, кто ты — абитуриент, зависший в нерешительности перед выбором ВУЗа, или матерый кодер, я предлагаю тебе остановиться и кое-что переосмыслить. А поможет нам в этом деле... кукла Барби.

Читать далее
Всего голосов 39: ↑33 и ↓6+27
Комментарии48

Make Habr Hard Again: «железная» номинация «Технотекста»

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

Новый «Технотекст» стартовал в конце прошлого года. Посмотрев список номинаций, некоторые авторы-инженеры YADRO, которые занимаются разработкой и программированием серверов, СХД, микроэлектроники, не поняли, какую из них выбрать. Раньше же была отдельная «железная» номинация… Куда пропала? 

Не долго думая, мы написали организаторам конкурса и спросили, как нам вернуть важную, на наш взгляд, тему в фокус обсуждения хабросообщества. Так и запустили номинацию «Железо: проектирование и технологии производства» — свои тексты на эту тему вы можете отправлять до 15 апреля включительно. А чтобы немного подогреть к ней интерес, собрали «хардверные» призы для лучших текстов. В тексте рассказали больше о призах и условиях участия. Больше о призах и условиях участия читайте под катом. 

Что у вас там?
Всего голосов 56: ↑57.5 и ↓-1.5+59
Комментарии10

Как не надо проверять размер массива в С++

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

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Всего голосов 83: ↑82.5 и ↓0.5+82
Комментарии103

Аппаратный антискиммер. Чёрная коробочка, защищающая банкоматы

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров12K
Приветствую всех!
Думаю, абсолютному большинству сидящих здесь знакомы такие устройства для кражи данных банковских карт как скиммеры. С ними активно боролись (где-то успешно, а где-то не очень), а к распространению бесконтактных карт они тихо и незаметно ушли в историю.



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

Итак, в сегодняшней статье поговорим про такой малоизвестный среди обывателей вид защиты банкоматов как активные антискиммеры. Попутно попробуем запустить имеющиеся у меня девайсы и узнаем, как они работают. Традиционно будет много интересного.
Читать дальше →
Всего голосов 64: ↑68 и ↓-4+72
Комментарии14

Как получить лицензию ФСТЭК России. Опыт «Фланта»: процесс, сложности, советы

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

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

В этой статье не будет захватывающих кейсов из практики наших SRE-инженеров. Мы погрузимся в бюрократический мир, с которым столкнулись при получении лицензий ФСТЭК России. Мы расскажем, лицензии каких видов бывают и как определить, какие из них необходимы. Также пройдёмся по основным требованиям к получению лицензий и рассмотрим, как мы приводили компанию в соответствие с ними и с какими проблемами столкнулись.

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии18

Программирование и ИТ во мгле, но это не точно

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

Приветствую хабравчане!

В данной статье хочу поделиться проблемами в ИТ. Высказать об этом своё мнение. Обсудить в комментариях, всё ли так плохо на самом деле и каков выход из данной ситуации. Меня не покидает ощущение, что мы как программисты, что то потеряли при очередном витке ИТ прогресса. Обсудим?

Давай, чё там у тебя
Всего голосов 155: ↑128.5 и ↓26.5+102
Комментарии298

Как системному аналитику не делать чужую работу

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

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

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии14