Pull to refresh
62
0
Гусейнов Алексей @kibergus

User

Send message

Распределенный аудиоплеер на Odroid U2

Reading time5 min
Views60K

Однажды я заметил, что довольно много времени я провожу на кухне, куда звук от колонок, расположенных в комнате доходит плохо. И тогда мне захотелось сделать хороший бесшумный плеер, способный синхронно воспроизводить музыку в нескольких комнатах. Конечно проблему можно было решить простым поворотом регулятора громкости, но этот способ был отброшен как негуманный по отношению к соседям. Другой важный момент заключался в том, что я хотел использовать те же колонки для вывода звука с компьютера. Зачем мне иметь несколько комплектов аккустики в одной комнате?
Пост получился довольно длиннный, так как я старался уделить внимание соображениям, по которым я выбирал то или иное решение.
Читать дальше →
Total votes 77: ↑73 and ↓4+69
Comments49

Читаем хабр, xkcd и rss на kindle

Reading time3 min
Views23K
С появлением электронной книги захотелось каждый день получать на неё пачку новостей, чтобы прочитать их по дороге на работу. Казалось бы, инструменты уже есть: бери и пользуйся. Но, как всегда, трудности в деталях:
  • Статьи надо посылать по расписанию
  • Надо посылать только новые статьи
  • Для разных сайтов нужны разные настройки
  • Картинки бывают не только в jpeg
  • Для xkcd надо уметь рендерить latex
  • На хабре статей много, а отсылать на книгу надо только избранные
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments13

Как правильно скопировать массив и при чем тут SFINAE

Reading time6 min
Views28K
Копировать элементы из одного контейнера в другой? Нет ничего проще, универсальный алгоритм помещается в 5 строк:
template<class InputIterator, class OutputIterator>
OutputIterator copy(InputIterator first, InputIterator last, OutputIterator result) {
    while(first != last) *result++ = *first++;
    return result;
}
Возможно вы узнали реализацию std::copy с cplusplus.com. Почему же реализация std::copy из GNU STL занимает 139 строк? Давайте разберемся.
Читать дальше →
Total votes 54: ↑48.5 and ↓5.5+43
Comments26

Поддержка C++ на avr в gcc

Reading time9 min
Views39K
Компилятор avrgcc поддерживает C++, однако в его поставку не входит ни стандартная библиотека, ни реализация ABI: служебных функций, вызовы которых вставляет сам компилятор. В результате люди пытаются реализовать те части, которые им нужны, самостоятельно и зачастую делают это не очень хорошо. Например, часто предлагается отстрелить себе ногу определив пустую функцию __cxa_pure_virtual(void) {} или подложить себе грабли, написав заглушки для __cxa_guard_acquire, __cxa_guard_release и __cxa_guard_abort. В данной статье я предлагаю разобраться, чего не хватает для счастья, где это взять или как написать.
Я знаю, что немло людей считает, что C++ на микроконтроллере не нужен. Их я прошу прочитать последний раздел статьи перед тем, как писать комментарии.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments33

Управление мощной нагрузкой переменного тока

Reading time8 min
Views218K
Все знают, насколько ардуинщики гордятся миганием лампочками
Так как мигать светодиодами не интересно, речь пойдет про управление лампой накаливания на 220 вольт, включая управление её яркостью. Впрочем, материал относится и к некоторым другим типам нагрузки. Эта тема достаточно избита, но информация об особенностях, которые необходимо учесть, разрозненна по статьям и темам на форумах. Я постарался собрать её воедино и описать различия между схемами и обосновать выбор нужных компонентов.
Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments64

User-hostile interfaces

Reading time6 min
Views1.6K

User-hostile interfaces

В последнее время тема user friendly интерфейсов весьма популярна, производители ОС для мобильных телефонов предоставляют подробные указания, как писать хорошие интерфейсы… Так почему же ими невозможно пользоваться? А дело в фундаментальных ошибках, заложенных во все живые мобильные ОС: это однозадачные ОС. Нормальное приложение под android, ios или wp7 должно включать свой оконный менеджер, менеджер задач (как само управление задачами, так и пользовательский интерфейс к нему), обеспечивать изоляцию этих процессов и не падать при ошибках в некоторых из них, а также поддерживать режим сна и восстановление из него. Но это же задачи ОС! В рамках приложения их решить или очень сложно или невозможно. Рассмотрим примеры странного поведения мобильных ОС.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments16

Information

Rating
3,584-th
Registered
Activity