Как стать автором
Обновить
62
0.1
Гусейнов Алексей @kibergus

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров23K
С появлением электронной книги захотелось каждый день получать на неё пачку новостей, чтобы прочитать их по дороге на работу. Казалось бы, инструменты уже есть: бери и пользуйся. Но, как всегда, трудности в деталях:
  • Статьи надо посылать по расписанию
  • Надо посылать только новые статьи
  • Для разных сайтов нужны разные настройки
  • Картинки бывают не только в jpeg
  • Для xkcd надо уметь рендерить latex
  • На хабре статей много, а отсылать на книгу надо только избранные
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии13

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

Время на прочтение6 мин
Количество просмотров28K
Копировать элементы из одного контейнера в другой? Нет ничего проще, универсальный алгоритм помещается в 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 строк? Давайте разберемся.
Читать дальше →
Всего голосов 54: ↑48.5 и ↓5.5+43
Комментарии26

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

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

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

Время на прочтение8 мин
Количество просмотров218K
Все знают, насколько ардуинщики гордятся миганием лампочками
Так как мигать светодиодами не интересно, речь пойдет про управление лампой накаливания на 220 вольт, включая управление её яркостью. Впрочем, материал относится и к некоторым другим типам нагрузки. Эта тема достаточно избита, но информация об особенностях, которые необходимо учесть, разрозненна по статьям и темам на форумах. Я постарался собрать её воедино и описать различия между схемами и обосновать выбор нужных компонентов.
Читать дальше →
Всего голосов 44: ↑37 и ↓7+30
Комментарии64

User-hostile interfaces

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

User-hostile interfaces

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

Информация

В рейтинге
3 339-й
Зарегистрирован
Активность