Search
Write a publication
Pull to refresh
3
0
reefer @reefer

User

Send message

Мой web-интерфейс управления умной квартирой

Reading time2 min
Views44K
Привет!

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

В феврале у нас был первый релиз. Первая версия включала фреймворк для домашней автоматизации: систему плагинов и инфраструктуру для них (чтобы плагины могли описывать свой API и события, а также использовать API и подписываться на события друг друга). Сейчас близится релиз второй версии, основная фича которого — новый веб-интерфейс.



UI теперь — модульное одностраничное приложение. Плагины могут описывать свой UI в виде html/js/css файлов, расположенных в ресурсах DLL. Клиентская часть UI основана на backbone.js и marionette.js, модули загружаются через require.js. В целом получилось довольно удобно для авторов плагинов — даже не имея глубоких знаний java script, можно, смотря в примеры, описать полноценный UI, который будет автоматически подключен в интерфейс управления домом.

А теперь - слайды!

Игры для NES/Famicom/Денди глазами программиста

Reading time5 min
Views120K
Это пост про ограничения старых видеоигр. Сам я под NES никогда не программировал, но с архитектурой поверхностно познакомился. Теперь я не могу играть в игры для NES, не задумываясь, как же они устроены. Иногда это на столько вызывает восхищение, что невольно забываешь про саму игру. «Чему же там восхищаться?», — скажете вы. Да просто укладываться во все ограничения NES, но при этом делать игру красивой, — это действительно целое искусство.

Сейчас я постараюсь рассказать об этом вам, максимально всё упростив.
Читать дальше →

Как воплотить в жизнь мечту детства и запрограммировать что-нибудь для Dendy

Reading time4 min
Views104K
Для меня Dendy всегда была чем-то большим, чем просто приставкой. Я не только играл в неё, но и значительное время провёл внутри неё с паяльником в руках для некоторых простых модификаций. По дороге куда-нибудь я часто размышлял о том, как же создаются эти игры и как это работает внутри. Наверняка, многие из вас когда-то задавались подобными вопросами, такова уж натура будущих IT-шников.

Прошли годы. С некоторой периодичностью погружался в эму-тему, изучая всё новое на тематических сайтах, но я не решался окунуться в изучение ассемблера 6502 и архитектуры NES. Внутренний конфликт рационального и иррационального. Я долго убеждал себя, что мне не нужно тратить на это время, но… сорвался. Глядя на то, какие интересные вещи делают энтузиасты эму-сцены, я взялся за свою давнюю идею со светлой мыслью: «Я тоже смогу!». Две недели пролетели незаметно, я еле смог остановить себя. И да, теперь я знаком с ассемблером без команд умножения, о чём раньше только слышал в песне о программистской молодости.



Очень вероятно, что сейчас вы вспомнили свой первый картридж для Dendy и меню с романтическим сюжетом и приятной музыкой. На таких картриджах никогда не было «серьёзных» игр, и не глядя на громкие надписи типа 9999-in-1, их обычно было что-то около пяти. Но это меню… Разве это не шедевр китайской мысли? :) Мне с детства нравилась эта мелодия (Unchained Melody), а фоновые изображения сейчас навевают кучу ностальгических воспоминаний. Поэтому я взял IDA и дизассемблировал меню 300-in-1, вырезал всё лишнее, исправил ошибки, добавил фейдинг да немного приятных мелочей — и получилась демка Unchained Nostalgia (для запуска нужен эмулятор, например, Nestopia), есть запись на YouTube.

Хотите также окунуться в олдскульное программирование? Делюсь самым полезным и интересным, что я нашёл по теме.
Читать дальше →

Конкурс проектов открытых онлайн-курсов Stepic Challenge

Reading time4 min
Views8.3K
Так как онлайн-курсы продолжают захватывать планету, а в России этот процесс идет весьма медленно, мы решили внести свой вклад в популяризацию онлайн-образования среди русскоязычных преподавателей и провести конкурс на создание открытых курсов и учебных материалов с использованием некоммерческой платформы Stepic.

Мы сделали небольшой анализ существующих возможностей получить поддержку для создания открытого интернет-курса на русском языке и пришли к выводу, что вариантов совсем немного. Получить грант на эти цели можно от Благотворительного фонда В. Потанина (но только при условии, что вы – преподаватель магистратуры), свои внутренние бюджеты на развитие дистанционного обучения есть у ряда университетов (например, у НИУ ИТМО, СПбГПУ, НИУ ВШЭ, СПбГУ, МФТИ), некоторые платформы покрывают часть расходов на создание курсов (например, «Лекториум»). Возможно, есть и другие варианты, добавляйте в комментариях, если знаете.
Теперь расскажу вкратце о нашем конкурсе

Вы и ваша работа *

Reading time40 min
Views823K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →

«Делай что должен» или «Кем я точно не хочу быть в 50 лет»

Reading time9 min
Views158K


Многих из вас, возможно, посещала крамольная мысль «а тем ли я занимаюсь, чем должен?». На правильном ли вы пути? Действительно ли расходуете отведенное вам на планете время на нужные и значимые дела? Стоит ли вообще заниматься тем, чем вы занимаетесь? Как найти свое предназначение и не пожалеть о потраченных впустую годах? Позволим же себе предаться философии чтобы в очередной раз осмыслить свое предназначение.
Читать дальше →

Что почитать на досуге. Дайджест новостей игровой индустрии за июнь

Reading time8 min
Views23K
Сегодня в дайджесте мы вспомним, что значительного произошло в мире геймдева за первый летний месяц.


Читать дайджест

Мультитест мультиварок: что купить IT-шнику, если хочется плова и борща

Reading time33 min
Views176K
Нам неоднократно поступали предложения о тестировании мультиварок, но до определенного времени мы от них отказывались — ну что такого можно рассказать о мультиварке. Однако, предложения продолжали поступать, и примерно после 5-6 письма редакция Box Overview задумалась, и решили сделать не просто тест одной мультиварки, а глобальное тест-сравнение 8 мультиварок нижнего ценового сегмента от разных брендов.

image

В нашем тесте участвуют 8 мультиварок от компаний Vitek (VT-4209), Kitfort (KT-201), Scarlett (SL-MC411S01), Polaris (PMC 0527D), Rolsen (RMC-5500D), Redmond (RMC-250), Philips (HD2173) и Panasonic (SR-MHS181).

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

Расширенный материал по Java 8

Reading time4 min
Views52K
Не секрет, что многие Java-программисты, начиная свой путь в индустрии, уделяют большое внимание «тяжелым» технологиям — OpenJPA, Spring, JAX-RS, EJB, WS-*,… Это дает возможность как скорее влиться в современные корпоративные проекты, так и максимизировать скорость роста зарплаты.

Многие из них в конце концов «спускаются» до технологий лежащих в основе указанных фреймворков — JDBC, Servlet API, NIO/NIO.2. Однако прискорбно, что зачастую не остается время на детальное изучение самого языка и возможностей платформы.

Речь идет не о тонкостях или экзотике, а о том, что составляет существенную часть работы фреймворка: Servlet-контейнер использует множественные ClassLoader-ы, JPA2-провайдер использует манипулирование байткодом, абсолютное большинство библиотек используют Reflection API, всеобщее использование Generics только «усугубилось» с появлением функциональных интерфейсов (java.lang.function.*) и лямбд.

На недопонимание изначальной платформы (ClassLoader, Reflection API) накладываются «новвоведения» Java 5 (Generics), а теперь еще и Java 8 (методы в интерфейсах, ссылки на методы, лямбды, Stream API, JSR 308: Pluggable Type Systems). Надо обратить внимание на то, что Generics + Java 8 — это не просто языковые фичи, это частично переход к функциональному стилю программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Я собрал определенное количество полезных (на мой взгляд) ссылок по следующим темам
  1. Методы в интерфейсах, ссылки на методы, множественное наследование
  2. Лямбды (Project Lambda)
  3. Stream API
  4. Функциональные алгоритмы
  5. Аннотации
  6. Генерики
  7. Reflection API
  8. Загрузка классов

Надеюсь кто-то сочтет их полезными.
Читать дальше →

DIY для детей. Собираем USB-микроскоп

Reading time4 min
Views110K
Вряд ли этот аппарат поможет вам паять микросхемы или рассматривать что-то серьезное. Но такой самодельный микроскоп точно понравится вашему ребенку, а сам процесс сборки – чудесная возможность провести вместе время и показать, что у папы руки растут из нужного места.



Итак, совместный досуг с ребенком на выходные – собираем usb-микроскоп из веб-камеры.

Читать дальше →

Function Pointer — забытая реализация шаблона Singleton

Reading time4 min
Views13K
Много статей написано о том, как правильно реализовывать на Java шаблон проектирования Singleton.

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

Лично я считаю единственным корректным способом реализации синглтона на Java так называемый Synchronized Accessor:

public class Singleton {
    private static Singleton instance;
    
    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}


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

Однако, пытаясь освежить в памяти возможности Java concurrency, я почитал старые статьи о вариантах синглтонов и удивился, что не нахожу описания еще одного способа, который я называю Function Pointer.
Читать дальше →

Моя реализация «умного дома»

Reading time7 min
Views277K
Полтора года назад я писал статью о разработке своей собственной шины «CLUNET» для соединения устройств в «умном доме». Многие просят рассказать о том, что же у меня получилось в итоге, что я сейчас и попытаюсь сделать.

Попытался начертить схему моей комнаты со всеми устройствами объединёнными в сеть, картинка кликабельна:



Вся идея держится на трёх китах:

  • Децентрализация — вся система функционирует без какого-либо главного модуля;
  • Простота — минимум компонентов и лёгкость подключения;
  • Дешевизна — себестоимость устройства легко уложить в 100 рублей.

Читать дальше →

Медиаспектакль «Нейроинтегрум»

Reading time4 min
Views5.7K
Привет, хабраюзеры. В данном посте я хочу рассказать вам о проекте, над которым я работал последние 4 месяца.

Речь идет о технологичном медиаспектакле, который создавался в рамках новой сцены Александринского театра. Главными героями спектакля являются эмоциональное состояние и мысли перформера. Для начала, официальное описание из соц. сетей:

Медиаспектакль «Нейроинтегрум» — экспериментальный проект, представляющий редкое на сегодняшней отечественной сцене направление science art, или научного искусства, использующего и осмысляющего достижения современных технологий. Спектакль, создающийся под руководством известного петербургского медиа-художника Юрия Дидевича, исследует один из ключевых сюжетов культуры рубежа веков — взаимодействие человека и машины: попытка наладить культурный диалог между ними — сверхсюжет «Нейроинтегрума». В спектакле используются биопотенциалы головного мозга исполнителя (электроэнцефалограмма ЭЭГ) для управления аудиовизуальными алгоритмами постановки.

«Нейроинтегрум» — первый театральный проект, реализованный на базе Медиацентра Новой сцены Александринского театра.

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

Облако в штанах

Reading time8 min
Views104K

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

Рынок «облачных хранилищ» очень насыщен: есть как зарубежные решения, так и отечественные.

Например, одни из самых известных зарубежных это: Dropbox.com, GoogleDrive, Microsoft OneDrive
Из отечественных: Yandex.Диск, Облако Mail.ru

У каждого из вышеперечисленного есть как преимущества, так и недостатки.
Так, например, Dropbox бесплатно выдаст Вам всего 2Гб дискового пространства, что по сравнению с бесплатными 10Гб от Yandex.Диск явно меньше, но зато у Dropbox есть система контроля версий файлов, что для кого-то может оказаться очень важным.

Mail.Ru даст Вам 100Гб (давали даже 1Тб, если Вы устанавливаете их ПО, но вроде эту «халяву» прикрыли) но программное обеспечение не работает под консолью Linux, нет даже поддержки WebDAV.
(UPD.: В комментариях писали, что по адресу: https://webdav.cloud.mail.ru/ есть BETA-версия WebDAV, но как оно будет работать сейчас и как оно будет работать дальше — не известно. Используйте на свой страх и риск).
Для кого-то эти тонкости не важны, а кому-то принципиально необходимы, чтобы, например, делать в облако резервные копии своих фотографий с помощью командной строки домашнего роутера.
Так же если на MAIL.RU файлы загружать через web-морду, то работает ограничение на его максимальный объём: 2Гб, а если загружать с помощью родного клиента, то max размер файла может быть 32Гб. Критично это или нет — вопрос индивидуальный.

Лично я отношусь к той категории пользователей, которым нужно как можно больше бесплатного пространства для хранения и чтобы была возможность работать с хранилищем в Linux без графической оболочки. Большим плюсом будет наличие возможности подцепиться к этому хранилищу с мобильного устройства (смартфона/планшета), ведь нам же нужно «облако штанах».

Что же подойдёт под такие критерии? Из бесплатных — не много.
Читать дальше →

Программируем квадрокоптер на Arduino (часть 1)

Reading time18 min
Views378K


Здравствуйте, хаброжители!
В этой серии статей мы с вами приоткроем крышку квадрокоптера чуть больше, чем этого требует хобби, а также напишем, настроим и запустим в воздух собственную программу для полетного контроллера, которым будет являться обычная плата Arduino Mega 2560.

У нас впереди:
  1. Базовые понятия (для начинающих коптероводов).
  2. PID-регуляторы с интерактивной web-демонстрацией работы на виртуальном квадрокоптере.
  3. Собственно программа для Arduino и настроечная программа на Qt.
  4. Опасные тесты квадрокоптера на веревке. Первые полёты.
  5. Крушение и потеря в поле. Автоматический поиск с воздуха средствами Qt и OpenCV.
  6. Окончательные успешные тесты. Подведение итогов. Куда дальше?

Материал объемный, но постараюсь уложиться в 2-3 статьи.
Сегодня нас ожидает: спойлер с видео, как наш квадрокоптер полетел; базовые понятия; PID-регуляторы и практика подбора их коэффициентов.
Читать дальше →

Мобильные приложения для путешествий

Reading time9 min
Views94K

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

Гаджеты, которые вы хотели взять в отпуск

Reading time6 min
Views35K


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

А много ли дроны дают молока? Приёмы обратной разработки в звуковом дизайне

Reading time7 min
Views32K
Статья является попыткой разобраться, можно ли передавать опыт обратной разработки в звуковом дизайне средствами выразительности русского языка.

Как-то раз, читая музыкальные форумы, я наткнулся на тему с обсуждением саунд дизайна в фильме Обливион. Людей интересовал процесс создания звуков дронов. Так как ответов по существу, спустя несколько недель, в той теме так и не появилось, а в официальном видео была одна вода, я решил попробовать найти ответ самостоятельно, применив методы обратной разработки.

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


Если вам ещё интересно, прошу под кат. Трафик!

Процедурное аудио

Reading time10 min
Views31K
Время, проведенное за компьютером, сводится в основном к «смотрению в экран»: пишет ли человек код, смотрит фильм, играет или узнает новости. Просто потому, что основное чувство человека — зрение. И оно во многом определяет восприятие реальности, механизмы взаимодействия с ней, и направляет развитие многих технологий.
Обычный пример эволюции железа и софта за последние несколько десятилетий: сравните Wolfenstein 3D (1992) и Crysis 3 (2013). Как продвинулась и усложнилась компьютерная графика за это время сложно недооценить.
Но увы, этого нельзя сказать о звуке. О том, как исправить ситуацию, и будет статья.

image
Изображение со страницы peripheriques.free.fr/blog/index.php?/past/2010-pure-data-read-as-pure-data

Читать дальше →

Основы Scala. 5 часов поедания мозгов

Reading time3 min
Views63K
Добрый день, уважаемое хабрасообщество!image

В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».

Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
Читать дальше →

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity