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

Пользователь

Отправить сообщение

Сервер онлайн-вещаний на базе nginx

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

Введение


Привет всем! Несколько месяцев назад на Хабре была опубликована статья «Вещание онлайн-видео с помощью nginx» , в которой Aecktann рассказал о своем опыте внедрения разрабатываемого мной модуля к nginx для вещания видео — nginx-rtmp-module. С тех пор продукт активно развивался и в этой статье я более подробно расскажу о нем.

Вещатель нужен для передачи видео-потока клиенту. Речь идет либо о живом потоке, либо о вещании записанного видео (VOD, Video-on-demand). Существует большое количество технологий вещания видео. Среди них можно выделить традиционные протоколы, такие как RTMP или MPEG-TS, а также появившиеся в последнее время технологии адаптивного вещания поверх HTTP. К последним относятся HLS (Apple), HDS (Adobe), Smooth Streaming (Microsoft), MPEG-DASH. При выборе технологии основным фактором является ее поддержка на клиентской стороне. Именно поэтому вещание в формате RTMP на текущий момент является одним из самых распространенных. Протокол HLS поддерживается устройствами компании Apple, а также некоторыми версиями Android.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии99

Как запустить программу без операционной системы: часть 4. Параллельные вычисления

Время на прочтение18 мин
Количество просмотров30K
После долгого перерыва продолжаем делать интересные штуки, как всегда на чистом железе без операционной системы. В этой части статьи научимся использовать весь потенциал процессоров: будем запускать программу сразу на нескольких ядрах процессора в полностью параллельном режиме. Чтобы провернуть такое, нам потребуется многое сделать для расширения функциональности программы полученной в части 3.

Просто так выполнять какие-то вычисления на ядрах процессора – скучно, поэтому нужна задача, которая требует больших вычислительных ресурсов, хорошо раскладывается на параллельные вычисления, да и выглядит прикольно. Предлагаем сделать программу, которая рендерит простенькую 3D-сцену, используя алгоритм обратной трассировки лучей, или, по-простому, Ray Tracing.

Начнем с самого начала: наша цель параллельные вычисления на всех ядрах процессора. Все современные процессоры для PC, да и ARM уже тоже (я молчу про GPU) – это многоядерные процессоры. Что же это означает? Это означает, что вместо одного вычислительного ядра у процессора на одном компьютере присутствует несколько ядер. В общем случае, все выглядит несколько сложнее: на компьютере может быть установлено несколько сокетов (чипов процессора), в рамках каждого чипа (в рамках одного кристалла) может находиться сразу несколько физических ядер, а в рамках каждого физического ядра может находиться несколько логических ядер (например, те, что возникают при использовании технологии Hyper Threading). Все это схематично представлено на рисунке ниже, и называется топологией.


Читать дальше →
Всего голосов 60: ↑58 и ↓2+56
Комментарии6

Атака машин: жестокая схватка

Время на прочтение3 мин
Количество просмотров11K
— Чертовы роботы, — прошипел сквозь зубы Снег. — Ненавижу!
Один из стальных пришельцев преградил им дальнейшее отступление. Железным стражем он застыл в дверях, сканируя помещение лучами своих лазерных сенсоров. Отступать приходилось уже второй день, и вот сейчас роботы совсем приперли наших ребят к стенке. Остался последний рубеж — вот эта вот комната. Обычная комната в панельной шестнадцатиэтажке.

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

image
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии27

«Грей, дуй, охлаждай…», или логика управления климатом в умном доме

Время на прочтение10 мин
Количество просмотров26K
Умный дом

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

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

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

В этой статье мы опишем процесс создания подобия HVAC системы для квартиры на базе протокола Z-Wave. Надеемся получить кучу замечаний от сообщества, чтобы довести наше решение до съедобного состояния. Если ожидаемый результат будет достигнут, то мы с удовольствием продолжим этот цикл другими публикациями, в которых будем делиться своим опытом использования Z-Wave устройств.
А теперь к делу!
Всего голосов 16: ↑14 и ↓2+12
Комментарии38

Советы и рекомендации по работе с Unity3D

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


Я опубликовал первую статью «50 советов по работе с Unity» 4 года назад. Несмотря на то, что бóльшая её часть всё ещё актуальна, многое изменилось по следующим причинам:

  • Unity стал лучше. Например, теперь я могу доверять счётчику FPS. Возможность использования Property Drawers снизила необходимость написания пользовательских редакторов (Custom Editors). Способ работы с префабами стал меньше требовать заданных встроенных префабов (nested prefabs) и их альтернатив. Скриптуемые объекты стали более дружелюбными.

  • Улучшилась интеграция с Visual Studio, отладка стала намного проще и уменьшилась потребность в «обезьяньем» дебаггинге.

  • Стали лучше сторонние инструменты и библиотеки. В Asset Store появилось очень много ассетов, упрощающих такие аспекты, как визуальная отладка и логирование. Большая часть кода нашего собственного (бесплатного) плагина Extensions описана в моей первой статье (и многое из него описано здесь).

  • Усовершенствован контроль версий. (Но, может быть, я просто научился использовать его более эффективно). Например, теперь не нужно создавать множественные или резервные копии для префабов.

  • Я стал более опытным. За последние 4 года я поработал над многими проектами в Unity, в том числе над кучей прототипов игр, завершёнными играми, такими как Father.IO, и над нашим основным ассетом Unity Grids.

Эта статья является версией первоначальной статьи, переработанной с учётом всего вышеперечисленного.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии41

Кот-анекдот KiQ или как мы говорящую игрушку для взрослых сделали

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

В мире существует невероятное количество говорящих игрушек для детей и это только усугубляет впечатление, что взрослым быть скучно. Наша команда решила исправить эту ситуацию.
Всего голосов 31: ↑29 и ↓2+27
Комментарии47

Ультрабюджетная точечная сварка литиевых аккумуляторов дома

Время на прочтение6 мин
Количество просмотров304K
В жизни каждого «радиогубителя» возникает момент, когда нужно сварить между собой несколько литиевых аккумуляторов — либо при ремонте сдохшей от возраста АКБ ноутбука, либо при сборке питания для очередной поделки. Паять «литий» 60-ваттным паяльником неудобно и страшновато — чуть перегреешь — и у тебя в руках дымовая граната, которую бесполезно тушить водой.

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

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

Читать дальше →
Всего голосов 57: ↑52 и ↓5+47
Комментарии109

Аппарат для точечной сварки на основе Arduino Nano

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


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

Для оптимизации всего процесса в системе используется Arduino Nano. Это управляющий блок, который позволяет эффективно управлять энергоснабжением установки. Таким образом, каждая сварка является оптимальной для конкретного случая, и энергии потребляется столько, сколько необходимо, не больше, и не меньше. Контактными элементами здесь является медный провод, а энергия поступает от обычного автомобильного аккумулятора, или двух, если требуется ток большей силы.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии60

Как работает yield

Время на прочтение6 мин
Количество просмотров677K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Всего голосов 141: ↑136 и ↓5+131
Комментарии41

Зачем нужны UITableViewController и UICollectionViewController

Время на прочтение5 мин
Количество просмотров16K
Всем привет, меня зовут Артём, я iOS-разработчик. Сегодня хочу рассказать о подходах к использованию UITableViewController и UICollectionViewController.

Едва ли можно найти мобильное приложение, в котором не используется списочное представление данных. Существенную часть времени мы (iOS-разработчики) проводим с TableView или CollectionView. Именно поэтому критически важным является выбор подходов к использованию этих базовых элементов из соображений скорости разработки и стоимости дальнейшей поддержки создаваемых решений. Хочу поделиться выводами, к которым мы пришли с коллегами в Touch Instinct.

Статья рассчитана на разработчиков, которые работают с TableView (CollectionView), но почему-то не работают с TableViewController (CollectionViewController). Далее будет упоминаться только TableView(Controller), но все написанное касается и CollectionView(Controller) тоже.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии10

Старая электроника — ваш личный золотой запас

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


С ростом объёмов информации, обрабатываемых компаниями, растут и серверные парки. Всё это обилие крупной техники со временем устаревает, списывается и… зачастую выбрасывается или простаивает мёртвым грузом на складах. Однако серверы, как и любая электроника, содержат в своём составе большое количество вредных веществ, поэтому их необходимо грамотно перерабатывать. Казалось бы, это довольно скучное и затратное занятие, но если подойти к нему с умом, то можно добывать из старых серверов золото. В буквальном смысле. И не только из них.
Читать дальше →
Всего голосов 71: ↑57 и ↓14+43
Комментарии61

HyperX Fury — когда не нужно выбирать между точностью и скоростью

Время на прочтение6 мин
Количество просмотров14K
С приходом в нашу с вами жизнь оптических мышей специальные рабочие поверхности как-то потеряли большой смысл. Мышь нормально ездит и по столу, курсор перемещается, что ещё надо простому офисному сотруднику? Да и большинству домашних пользователей нормально сидится с обычными мышами — работает и ладно. А вот когда речь заходит о точном перемещении курсора — работе с графикой, 3D или о банальных играх… Тут совсем другая песня.



За последние лет пять-десять особой эволюции в мягких коврах не произошло. Отчасти, тут нечего изобретать. Взял резиновую подложку, налепил тряпку, нарисовал принт, чтоб глаз радовал, готово. С жёсткими всё чуть интереснее, но из всех моих знакомых (я опросил человек 30, не меньше), жёсткими коврами от одной чёрно-зелёной компании пользуются двое. Ну и я пользовался достаточно долгое время, пока не устал от его вечно-холодной поверхности из-за лёгкого сквозняка. Собственно, о коврах, некоторых технологиях, использующихся при производстве, интересностях и нюансах сегодня и постараюсь рассказать. Без лишней воды и по сути, да ещё и с примерами.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии25

Спросите Итана №88: где находится космическое микроволновое фоновое излучение?

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

Это самый старый и самый удалённый от нас свет. Но где конкретно он находится?


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

Если взглянуть на удалённые части Вселенной, вы будете смотреть в прошлое, из-за того, что скорость света конечна, хотя и очень велика. Так что, посмотрев на самый дальний объект из видимых, на самый первый свет, воспринимаемый нашим оборудованием, мы должны чего-то достичь. В случае с нашей Вселенной, насколько мы знаем, это будет остаточное свечение Большого взрыва: космическое микроволновое фоновое излучение. Все вы отправили большое количество вопросов, и на этой неделе я решил ответить на вопрос Дэвида Инглиша:

Мы видим популярное изображение КМФИ в виде глобуса. Оно нас окружает. Как я понимаю, что КМФИ – это самое раннее изображение Вселенной. Поскольку мы смотрим в прошлое, когда наблюдаем удалённые объекты, то КМФИ по логике должно быть самым дальним из всех. Это значит, что КМФИ находится в конце Вселенной, но это ведь не так. Пространство бесконечно, насколько мы знаем, и его грань мы не видим. Так где же это КМФИ, если не у конца Вселенной?

Начнём с самого Большого взрыва, чтобы затем прийти к КМФИ.


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

Первый самодельный клиент, который подключается к Skype Network

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


Skype — один из самых небезопасных мессенджеров по объективным причинам. Одна из них — обфусцированный бинарный файл, чтобы затруднить реверс-инжиниринг. Корпорация Microsoft отказывается предоставить исходный код для аудита и проверки специалистами по безопасности, последняя проверка проводилась в 2005 году.

Несмотря на все риски, многие люди вынуждены использовать клиент Skype.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии102

У вас нет высыпаний? Будут

Время на прочтение5 мин
Количество просмотров63K
Меня зовут Евгений и я жаворонок. Сегодня проснулся в 6 утра, открыл окно в кухне, заварил кофейку и решил глянуть, «что нового». Мне написал мой бывший коллега «Андроид»… Точнее «Андроид-разработчик» Максим, но так звучит фантастичнее…

image

Он спросил:
– Женя, привет. (wave) Вопрос к тебе, как мега лайв хакеру. Сколько времени нужно спать, что бы мозг отдохнул и можно было плодотворно работать? Умные будильники сильно помогают?

Я ответил, а потом подумал, ведь и парочке сотен человек с Хабра тоже пригодится хоть один пунктик из вычитанных мною ранее советов, ведь «так как никто не слушает, приходится повторять»:
Читать дальше →
Всего голосов 88: ↑63 и ↓25+38
Комментарии203

Домашняя автоматизация с ioBroker

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

В данной статье хочу осветить автоматизацию дома и как с помощью Open Source проекта освещать (и не только) свое уютное жилище. Ах да, чуть не забыл сказать, что вся автоматизация происходит на JavaScript!

Для всех любителей JS прошу под кат
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии114

По следам Google I/O 2016 — новый Firebase: интеграция с Android

Время на прочтение13 мин
Количество просмотров46K
Привет, Хабр! Мы продолжаем цикл статей по технологиям, представленным на нашем ежегодном мероприятии Google I/O. Сегодня у нас в гостях Александр Денисов, и он расскажет про своё знакомство с базовыми возможностями обновлённого Firebase.


Передаём ему слово!
Всего голосов 14: ↑13 и ↓1+12
Комментарии17

Обзор твердотельного накопителя Kingston UV400 480 GB — SSD с «изюмом»

Время на прочтение4 мин
Количество просмотров34K
Привет, GeekTimes! Больше объема, меньше денег — таков слоган современных SSD. Хотите вы того или нет, но чем «дальше в лес», тем шире распросторняются твердотельные накопители. Причины? Смотрите на слоган выше — емкости стали расти, цена стала снижаться. Сейчас «винчестер» на 500 гигабайт стоит уже дороже, чем SSD начального уровня 120 гигабайт. Да, конечно же есть изменения в конструкции — новые типы памяти, новые контроллеры. Под катом разбор новинки — Kingston UV400 объемом 480 гигабайт, в которой есть изюминка.


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

Спросите Итана №46: Что такое квантовое наблюдение

Время на прочтение4 мин
Количество просмотров39K
Можно увидеть многое, просто наблюдая
— Йоги Бера


Читатель спрашивает:
А что такое «наблюдение»? У меня есть два примера, которые я тем меньше понимаю, чем больше о них думаю: эксперимент Юнга и теорема Белла. Чем больше я о них думаю, тем меньше я понимаю, что на самом деле означает «наблюдение».


Давайте начнём с рассмотрения этих двух классических примеров странности квантового мира.

image

Сначала возьмём эксперимент Юнга. Давно известно, что частицы ведут себя не так, как волны. Если вы возьмёте экран с двумя щелями и будете кидать туда камушки, или пульки, или другие макроскопические предметы, большинство камушков будет задержано экраном. Несколько пролетят через щели. Можно ожидать, и по сути, так и происходит, что несколько камушков пролетят через левую щель, и несколько – через правую.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии113

Хороших книг пост

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


А давайте давайте соберём здесь хорошие книги, которые просто стоило собрать.
Суть в том, что просто давно стоило сложить хорошие книги в одном посте, чтобы было что прочитать в дороге — или просто для души.
Читать дальше →
Всего голосов 84: ↑72 и ↓12+60
Комментарии392

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Дата рождения
Зарегистрирован
Активность