Search
Write a publication
Pull to refresh
14
0

Java Developer

Send message

Мобильное приложения для управления умным домом на базе Z-Wave с помощью OpenRemote

Reading time8 min
Views84K

Не так давно был представлен Z-Wave модуль для Raspberry Pi — RaZBerry, который превращает мини-компьютер в полноценный контроллер умного дома. Управление Z-Wave сетью осуществляется с помощью web-интерфейса, использующего HTTP/JavaScript API. Используя JavaScript можно создать набор функций для автоматизации (включение/выключение света, проверка температуры, опрос датчика движения и др.), которые затем можно выполнить, послав HTTP запрос.

Продукт компании OpenRemote с одноименным названием позволяет создавать мобильные приложения для умного дома без программирования, при этом в одном приложении могут использоваться разные технологии: Z-Wave, KNX, X10, ZigBee, управление компьютером по ssh и др.

OpenRemote это сервер выполняющий любые команды и конструктор интерфейсов в котором вы создаете кнопки, переключатели, надписи и др. и этим элементам уже назначаете команды, в нашем случае это HTTP запросы на выполнение JavaScript функций на сервере Z-Wave.

Далее я по пунктам расскажу как создать пульт управления умным домом для iPhone и Android! А вот так будет выглядеть наше приложения, когда мы закончим:


Под катом много картинок.
Будет интересно!

11 причин быть управленцем

Reading time8 min
Views139K
Поводом для написания этого поста стали замечательные размышления автора TheR о подводных камнях перепрофилирования из программиста/инженера/просто технаря в менеджера. Автор поста обещал написать свой собственный список причин, почему же иногда все-таки стоит это делать, но прошло уже почти полгода, а списка так и не появилось, так что расскажу о своем видении проблемы.

Моя карьера стартовала в самом начале нулевых, в течение 6 лет я работал программистом и консультантом разных уровней, а примерно 5 лет назад я полностью перепрофилировался в менеджера. Решение уходить из чисто технической области, как и многие, я принимал под впечатлением иллюзий о том, что у менеджеров намного больше денег, больше возможностей принимать решения и т.д. Как и писал TheR в упомянутом выше посте, многие мои предположения о работе менеджером оказались иллюзией, но некоторое количество очевидных (и не очень) плюшек в этой профессии все же присутствует. Я надеюсь, что эти два поста про плюсы и минусы такого перепрофилирования помогут кому-нибудь из Хабровчан принять взвешенное решение о дальнейшем развитии своей карьеры.
Читать дальше →

Смешивание текстур ландшафта

Reading time3 min
Views91K


В данной статье я расскажу об алгоритме смешивания текстур, который позволяет привести внешний вид ландшафта ближе к естественному. Этот алгоритм легко может быть использован как в шейдерах 3D игр, так и в 2D играх.

Статья рассчитана на начинающих разработчиков игр.
Читать дальше →

Google Play Developer Console: новый функционал – новые проблемы

Reading time3 min
Views11K
Отгремела конференция google i\o 2013. В этом году она оказалась какой то противоречивой – показали много чего никто не ожидал, а то что ожидали – показано не было. Ну да ладно, об этом было много уже написано, статья о другом.
Поговорим мы сегодня лишь об одном нововведении, и проблемах, которые оно мне принесло – “Советы по оптимизации” в консоли google play.


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

ZTE V987 — 4-х ядерный смартфон с отличным экраном

Reading time8 min
Views113K
image

Вот и начался новый этап развития китайских смартфонов на новой платформе Mediatek MT6589. Парад открывали бренды ориентированные на внутренний рынок (THL, Zopo, UMI), но со временем начали появляться модели и от более именитых производителей. В данном обзоре мы рассмотрим одну из новинок от компании ZTE — смартфон ZTE V987. Главной особенностью которого является использование высококачественного 5-дюймового OGS экрана с разрешением 1280х720 пикселей.
Читать дальше →

Термины, жаргон, определения Android

Reading time19 min
Views48K

Очень часто, разбираясь с незнакомым программным продуктом или операционной системой, мы чуствуем трудности в понимании значений терминов. Иногда мы их встречаем впервые и это заставляет нас искать в интернете описания и статьи. Хуже, если написание термина совпадает с тем, что мы знали раньше, а значение другое. Особенно это усугубляется при чтении статей на иностранном языке. Потому представляю вашему вниманию перевод терминов взятый из Android Terms,Slang,Definitions & Guides.
Оригинальный текст состоит из семи частей, который кроме терминов включает в себя описания и инструкции как выполнить некоторые распространенные действия со смартфоном. Это первая часть, где собраны наиболее встречающиеся термины. Этот набор терминов очень удобно использовать перед первым занятием по программированию под Android, в качестве раздаточного материала, чтобы слушатели, ознакомившись, могли понимать о чем ведется речь, если вдруг проскочит жаргонное слово в вопросе или ответе. В основном термины предназначены для начинающих и связаны с настройкой операционной системы. Как сами определения, так и перевод не претендует на исключительную уникальность, правильность, точность и строгость. Любые предложения и исправления принимаются с радостью и благодарностью.
Читать дальше →

Clipping magic: онлайн-инструмент для вырезания картинки из фона на базе технологий искусственного интеллекта

Reading time2 min
Views536K
Открывшийся недавно в режиме публичной альфы сайт Clippingmagic.com предназначен для решения всего одной задачи — удаления фона изображения, но зато делает он это весьма неплохо. В отличие от большинства подобных инструментов, он имеет удобный и простой интерфейс и при этом результат получается очень приличным. Пожалуй, лучше и аккуратнее можно сделать только в настоящем большом редакторе вроде Photoshop или Gimp, потратив при этом гораздо больше времени.



Алгоритм работы очень прост: загружаем картинку, выделяем зелёным объект, а красным — фон, затем несколькими штрихами исправляем оставшиеся огрехи. Весь процесс занимает буквально минуту-другую и не требует особой твёрдости руки. Изображение можно масштабировать, при этом размер кисти не меняется, позволяя обработать мелкие детали. Результат можно сохранить в формате PNG.
Читать дальше →

Разработка сервера браузерной игры… как учебная дисциплина

Reading time13 min
Views92K
В середине прошлого лета на программерскую рассылку отдела клиентских игр Mail.Ru Group пришло письмо – «Объявлен конкурс на позицию преподавателя курса Java в нашем совместном проекте с МГТУ им. Н. Э. Баумана». Как программист и сотрудник отдела я это письмо тоже получил. Как выпускник физтеха, а в прошлом преподаватель и научный работник, решил откликнуться.
Так для меня началась история работы преподавателем в Технопарке. Собственно об этом (о работе, о Технопарке, о своем курсе и о студентах) я и хочу вам рассказать.

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

Отладка Javascript

Reading time5 min
Views146K
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

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

Ресурсы, о которых должен знать каждый Android-разработчик

Reading time6 min
Views189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →

Blind Deconvolution — автоматическое восстановление смазанных изображений

Reading time6 min
Views148K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →

Android SDK: боремся с ограничением размера памяти для картинок

Reading time5 min
Views16K
В графическом приложении для рисования используется SurfaceView и пара Bitmap размером с экран (например, я хочу изобразить плавное листание страниц книги).

На многих устройствах с большим разрешением экрана приложение падает c ошибкой
AndroidRuntime: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

Проблема в том, что память для Bitmap, а также для SurfaceView резервируется из общей кучи процесса. Лимит размера кучи — невелик, как правило немногим больше 10Мб. И задается этот лимит при сборке системы.

Попытки улучшить ситуацию урезанием формата пикселя с 32 бит до 16 не слишком помогают. Проблема просто вылезает позже — например, при открытии окна поверх SurfaceView (видимо, при этом создается еще один Bitmap размером с экран).

Ограничение размера графических буферов программы в 3-4 экрана — это до обидного мало! Попробуем исправить такую несправедливость.
Читать дальше →

Как работают браузеры: принципы работы современных веб-браузеров

Reading time2 min
Views190K
Просматривая одно из обучающих видео "Школы разработки интерфейсов" Яндекса, наткнулся на ссылку на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).

Она в течение нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 30-40. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!

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

Под катом содержание перевода, чтобы решить стоит ли читать.
Читать дальше →

Продуктивное использование PHPStorm

Reading time7 min
Views328K
В процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.

Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Что ж там такое?

Инструменты студии мобильной разработки

Reading time4 min
Views38K


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

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

Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
Читать дальше →

Процесс разработки в Badoo

Reading time8 min
Views38K
Сегодня мы проведём экскурсию по цеху разработки Badoo, в котором создаётся новый функционал нашего сайта, расскажем о самом процессе — от постановки задачи и до момента выкладки в боевое окружение.

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

27+ ресурсов для онлайн-обучения

Reading time5 min
Views971K

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

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

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

Java на каждый день и не только. Рекомендации по использованию

Reading time8 min
Views65K
Всем привет!

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



image
Java — это язык с мощными стандартными возможностями, но «Большая сила налагает большую ответственность». Я видел много java-кода, в котором чрезмерно (и зачастую — неправильно) использовались «редкие» свойства языка, в то время как основы основ были почти полностью проигнорированы. Эти наблюдения и послужили стимулом к написанию статьи.

Это не список обязательных к использованию каждым программистом особенностей языка. Скорее наоборот. Я разделил их на 3 группы: "для каждодневного использования", "для периодического использования" и "только для фреймворков и библиотек!". Правило простое: если вы понимаете, что используете указанные свойства чаще, чем рекомендуется, то, скорее всего, ваш код развивается по неправильному пути. Если же наоборот — вы редко используете какие-то свойства, чем я рекомендую, значит вы упускаете какие-то интересные и важные возможности языка.

Обратите внимание, что я говорю о разработке типичных серверных бизнес-приложений (JVM, JDK, вот это все) и не даю рекомендаций относительно каких бы то ни было фреймворков.
Читать дальше →

Расширение функциональности готовых программ

Reading time11 min
Views43K
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →

Умная зарядка Kweller X-1800. Заряжаем никель правильно

Reading time10 min
Views150K
Опять понедельник, и опять что-то интересное у нас на столе в Box Overview! На этот раз — интеллектуальное зарядное устройство для Ni-Mh аккумуляторов типоразмера AAA и AA.
Почему интеллектуальное?

image
В отличие от обычных зарядных устройств, которые продаются задешево китайцами или входят в комплекты типа «10 дешевых аккумуляторов и дешевая зарядка за 2000 рублей», и заряжают «капельным» способом, это зарядное устройство имеет в себе контроллер, в который заложены программы быстрой зарядки аккумуляторов, и некоторые другие фишки — вроде определения емкости и «тренировки» аккумуляторов для восстановления емкости.
Читать дальше →

Information

Rating
Does not participate
Location
Белгород, Белгородская обл., Россия
Date of birth
Registered
Activity