Pull to refresh
36
0
Игорь Ингеров @IgorIngeneer

инженер

Send message

Выжимаем все соки из WebRTC для стриминга камер на примере go2rtc

Level of difficultyMedium
Reading time10 min
Views15K

Go2rtc — это open source приложение для стриминга видео в реальном времени. Оно весит всего 5 мегабайт, не имеет внешних зависимостей и работает на всех популярных ОС. Поддерживает технологии ​​RTSP, RTMP, DVRIP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit и многие другие. Последний релиз получился настолько масштабным, что все нововведения пришлось оформлять в статью на Хабре.

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

Моделируем в радиолокации то, что обычно не моделируют

Level of difficultyMedium
Reading time12 min
Views4.1K

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

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

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

Итак, поехали..

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

Радиотелефончик на смартфоне

Level of difficultyEasy
Reading time15 min
Views21K
image

Немало воды утекло со времени публикации цикла про стриминг видео на Андроид устройствах, но вот ручки добрались и до аудио потоков. Не то, чтобы это была какая-то более заковыристая тема про сравнению с видео, даже наоборот, сложно придумать что-то проще, ибо Audio API не менялось, дай бог памяти, с 2012 года, если не раньше. И не стоило бы, ради этого пилить короткий пост, если бы не зудящая мысля — а на какое расстояние и каким образом можно передать сей аудио поток, если мы будем использовать для этого только два смартфона без всякой мобильной связи и внешних точек доступа.

Если вам интересно узнать, что из этого получилось, то прошу проследовать под кат…
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments65

Революция генеративного ИИ началась — как мы к этому пришли?

Reading time18 min
Views14K

Сегодня только и разговоров, что о ChatGPT, Midjourney и прочих DALL-E. Почему именно сейчас нейросети стали такими крутыми и развиваются семимильными шагами? Прорыв стал возможен благодаря новому классу невероятно мощных моделей искусственного интеллекта. Рассказываем, с чего всё началось и как мы здесь оказались.

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

Анимация грида в CSS

Reading time4 min
Views9.4K

Я рад пролить свет на тот факт, что CSS grid-template-rows и grid-template-columns теперь можно анимировать во всех основных веб-браузерах! Что ж, CSS Grid уже давно технически поддерживает анимацию, ведь она встроена прямо в спецификацию CSS Grid Layout Module Level 1.

Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments4

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

Reading time22 min
Views30K

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

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

Работа с датчиками в Android, или сервис для записи показаний с акселерометра

Reading time5 min
Views11K

Введение


Год назад, на хабре публиковалась статья «Собираем показания датчиков с Android смартфона», где рассматривался способ получения данных с акселерометра (кстати говоря, есть пост более старый, в котором рассказывается все то же самое). Недавно передо мной была поставлена похожая задача. Необходимо было создать приложение (решил назвать его «Sensor Logger»), записывающее показания с акселерометра в файл в фоновом режиме. В данной статье постараюсь показать, как можно использовать сервисы и намерения, как работать с текстовыми файлами, а также каким образом отправлять данные из сервиса в Activity.
Читать дальше →
Total votes 12: ↑7 and ↓5+2
Comments1

Создание WEBGL приложения Вконтакте на Unity

Reading time19 min
Views12K

В нашем уроке мы создадим свой проект на Unity, и подключим его к html странице с помощью Javascript. И затем научимся обмениваться данными между Javascript браузера и скриптами Unity. И в заключение создадим новое приложение Вконтакте и научимся работать в связке Api Вконтакте – Javascript – Unity .

Вы узнаете, как написать простой скрипт, как добавить события пользователя. Как из скрипта Unity обращаться к скрипту Javascript на стороне браузера. И также как пройти путь от нажатия кнопки в среде Unity до вызова метода Api Вконтакте с полным контролем всех событий.

Читать далее
Total votes 8: ↑7 and ↓1+7
Comments0

Hyper-casual. Работа на энтузиазме

Reading time5 min
Views3.8K

Можно ли сказать, что Hyper-casual Game появились в 2017 году? Если верить Wikipedia, то да. Именно тогда мобильные сторы заполнили розовые и синие стикмены, нам предлагали выщипывать брови, красить автомобили, подметать улицы и собирать шарики в разном формате. 

В тот год начали формироваться новые правила для нового рынка. Паблишеры разного размера и разной степени известности открывали направления по работе с Hyper-casual. Игровые студии срочно открывали отделы по этому направлению или даже полностью перестраивались на новые рельсы. Лозунг того времени в  Hyper-casual: “Даешь по прототипу в неделю”.

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments2

Ламповое гитарное усиление – парадокс долговечности тренда

Reading time7 min
Views49K
Эпидемия интереса к ламповому гитарному усилению не снилась даже самым именитым High End брендам, использующим ламповые системы. Несопоставимые объёмы продаж, при высокой стоимости и стремительно устаревающей технологии, на фоне динамичного развития гитарных процессоров и разного рода эмуляторов – поражают. «Ламповый тренд» в гитарном звуке держится с момента появления первых электрогитар до настоящего момента, и интерес к подобной технике вряд ли иссякнет в ближайшие 10 лет.



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

Самый интересный вопрос – почему? Какая «магия» притягивает гитаристов к устаревшей технологии и позволяет производителям продавать тысячи, казалось бы, не рентабельных, дорогих, тяжелых, не слишком функциональных, менее надёжных ламповых усилителей? Парадокс с долговечностью этого тренда лучше рассматривать в нескольких аспектах: история гитарного оборудования, особенности исполнения, управления этим оборудованием и, естественно, маркетинг. Последний аспект выражен в значительно меньшей степени, нежели в Hi-Fi и High End аппаратуре.
Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments107

Unity UI Toolkit: Быстрый старт

Reading time8 min
Views17K

Всем привет!

В игре может быть множество элементов интерфейса, всплывающих окон и т. д., и когда появится необходимость изменить общий стиль, например цвет кнопки или текста, то придется это менять во всех созданных элементах, если используется старая система UI Canvas - uGUI (IMGUI забудем как страшный сон). Не так давно Unity предоставили новую систему UI Toolkit, вдохновленную веб-технологиями (HTML-CSS vs UXML-USS) и позволяющую изменить цвет, шрифт и другие свойства всех элементов в игре одним движением. Преимуществ много, например можно подключить веб-дизайнера, и он тут быстро освоится.

Как и ожидается при появлении новой технологии, внятная документация отсутствует, статей в интернете мало и информации в них кусочками. Официальную документацию стараются делать, но явно не для людей. А так как мы все ценим свое драгоценное время, когда еще и горят дедлайны, мы хотим быстро и без лишних затрат использовать все удобства в разработке. Целью данной статьи как раз и является помощь в быстром освоении нового подхода Unity в создании интерфейсов, чтобы не отвлекаться на рысканье в потоках бессвязной документации и продолжать реализовывать свою фантазию или фантазию заказчика. Давно не доходили руки до написания статьи, но пора бы уже уронить свою каплю в море.

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

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

Unity3d: Запись файла на Yandex диск на C#

Reading time3 min
Views3.9K

К моему удивлению, на столь популярный сервис, как Яндекс диск, не нашлось примеров записи файла на диск на языке программирования C#. На PHP же ситуация обратная, примеров вдоволь, например: https://snipp.ru/php/disk-yandex

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments2

PostgreSQL Antipatterns: Индиана Джонс и максимальное значение ключа, или В поисках «последних» записей

Reading time2 min
Views10K

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

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

Читать далее
Total votes 18: ↑16 and ↓2+20
Comments42

Как фронтендеру стать мобильным разработчиком, или Перевод API React в Jetpack Compose

Reading time11 min
Views3.9K

Привет, я Данильян, работаю в Самокате фронтенд-разработчиком, разрабатываю бэкофисное приложение с использованием React. Когда я только начинал изучать Jetpack Сompose, я наткнулся на статью, в которой простым языком для людей, пришедших из мира веб-технологий в мир мобильной разработки, расписано, как писать код для мобильных устройств, чтобы было как в React. Из материала в статье особенно подкупали примеры: вот, что вы делали в React, а вот, как в Jetpack Compose получить то же самое. 

Делюсь с вами переводом этой статьи.

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

Цифровое моделирование аналоговых гитарных эффектов дисторшн

Reading time5 min
Views9.5K

Звучание рок музыки, в частности направлений hard rock и heavy metal, во многом базируются на специально искаженном гитарном звуке, для получения которого используются электронные устройства "дисторшн", ламповые усилители в "перегруженном" режиме, компьютеры с соответствующим программным обеспечением обеспечением и цифровые процессоры, все чаще использующие алгоритмы нейронных сетей.

Набирать популярность искаженный звук электрогитар начал примерно с 1960-х годов. С тех времен считается, что звук перегруженных ламповых усилителей с выходом на мощные специальные гитарные колонки с большими специальными динамиками является эталоном в рок музыке. Но ламповые усилители были относительно дорогие и неудобные в эксплуатации. Поэтому разрабатывались полупроводниковые устройства дисторшн. В то время электрические принципиальные схемы устройств дисторшн были относительно простые и звучание сигнала с их выхода лишь отдаленно напоминало звучание перегруженного лампового усилителя. Тем не менее оно все же несколько походило на "звук лампы" и это давало мощный стимул разработчикам аналоговых полупроводниковых схем дисторшн продолжать свои исследования, усложнять схемы и предлагать новые схемные решения. Расцвет аналоговых полупроводниковых дисторшн пришёлся примерно на 1995-2010 года. Наиболее популярны были электрические принципиальные схемы наподобие приведенных на рисунке ниже.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments47

Нарастающий итог в SQL с разрывами в данных

Reading time6 min
Views12K

Ранее мы рассмотрели способы расчёта нарастающего (накопительного) итога в SQL. Самый распространённый вопрос - как посчитать тоже самое, но на данных с разрывами? После написания исходной статьи мне его задавали неоднократно – так что есть смысл написать об этом отдельно.

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

«Невозможный» параллельный алгоритм неотрицательной суммы

Reading time4 min
Views9.4K

Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.

Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но

сломать мозг
Total votes 19: ↑18 and ↓1+26
Comments33

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

Reading time3 min
Views162K

... и это еще не все: бонусом идет сытое и беззаботное существование.

Автор: Лысый Камрад (@LKamrad)

—  Да какой же это паразит? —  воскликнет  читатель, —   Ведь он осуществляет заветную мечту чуть не  каждого жителя планеты —  не стареть, жить долго  и в достатке, не прилагая никаких усилий для этого.   Кто бы в здравом уме от такого "паразита"  отказался? 

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

Речь идет о ...

Читать далее
Total votes 212: ↑189 and ↓23+215
Comments115

Почему игры в жанре «3 в ряд» всегда популярны

Reading time4 min
Views6.7K

Прибыль от игр-головоломок увеличивается с каждым годом. Известно, что игры данного жанра принесли 4,9 млрд долларов в первой половине 2021 года, что на 56,8% больше, чем в прошлом году. Так как игры жанра «3 в ряд» являются наиболее популярными среди игр-головоломок, это основной источник дохода для всех компаний-разработчиков.

Давно выпущенные игры жанра «3 в ряд» по-прежнему являются достаточно прибыльными

Большая часть игр жанра «3 в ряд» имеют ограничение по времени. Однако, Candy Crush Sage, игра в жанре «3 в ряд», официально выпущенная в 2014 году компанией King была разработана для игры с ограниченным количеством ходов, предлагая развлекательный и расслабляющий игровой процесс с меньшим давлением, и дающая больше времени на размышления.

Геймплей с повышением уровня также стал отличным преимуществом. Также, появились игроки, рассказывающие об Candy Crush Sage в социальных сетях. Candy Crush Sage оставалась лидером в топах самых продаваемых игр-головоломок в App Store, принося при этом огромный доход.

Создание нового много сюжетного геймплея

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

Читать далее
Total votes 8: ↑4 and ↓4+3
Comments4

Flappy Bird на Unity 3D

Reading time4 min
Views9.5K

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

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

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

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

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

Читать далее
Total votes 11: ↑8 and ↓3+7
Comments6
1

Information

Rating
Does not participate
Location
Петродворец, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Game Developer, HTML Coding
Middle
From 10,000 ₽
JavaScript
CSS
HTML
JQuery
Adaptive layout