Как стать автором
Обновить
15
0
Василий @elDraco

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

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

Гибкая конфигурация с Guice

Время на прочтение5 мин
Количество просмотров11K
Существует множество различных конфигурационных библиотек, доступных в Java, например, одна от Apache Commons, но они как правило, следуют очень простому шаблому: парсинг ряда конфигурационных файлов и построение на основе этих данных Property или Map, у которого в дальнейшем и запрашиваются значения:
Double double = config.getDouble("number");
Integer integer = config.getInteger("number");

Но этот подход меня не устраивает по нескольким причинам:
  • Во-первых, получается достаточно многословно;
  • Приходится передавать конфигурационный объект целиком, даже если от него требуется всего один параметр;
  • Очень просто допустить ошибку в ключе и прочитать некорректные данные.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии3

Вода горит! А также ЭГЭ и волны-убийцы

Время на прочтение14 мин
Количество просмотров197K
Водяная спичка — устройство для поджигания воды и проведения интересных опытов с взрывами.
Это конечно не термоядерный взрыв, но что водородный, это точно! Опыт безопасен, так как водород сгорает мгновенно, без накопления опасных объемов.
Предполагаю, что подобная буря в стакане, в масштабах планеты является источником возникновения интересных явлений — волн-убийц и цунами неизвестного происхождения, которые появляются буквально из ниоткуда, обрушиваются на судно и так же бесследно исчезают. На данный момент отсутствует внятное объяснение причин возникновения таких волн.

Возможно, все происходит так…


Анимация “Водяной”

При попадании молнии на поверхность Мирового океана, происходит водородный взрыв, а при удачном сочетании глубины воды и рельефа дна, направления удара и величины напряжения, продолжительности импульса и длительности его фронта — формируется огромная одиночная волна в результате импульсного электролиза поверхностного слоя воды, рассматриваемого в этой статье. Не последнюю роль в явлении играет резонанс.
В районе Бермудского треугольника эти условия выполняются наиболее часто, поэтому он получил свою печальную известность.
Примерно одна миллионная из 250 миллионов молний, ежегодно бьющих по поверхности Мирового океана, рождает супер-волну.
Белая волна — насыщенная газами вода, в которую попадают экипажи низколетящих летательных аппаратов, не является вымыслом и она присутствует в опытах. Вписывается в эту теорию и возникающий при ударе молнии электромагнитный импульс (ЭМИ), выводящий из строя навигационное оборудование.
В отличие от других экзотических способов поджигания воды, рассматриваемый вариант прост и имеет 100% повторяемость. Опыт показывает огромную скорость и производительность электролиза воды при коротком импульсном воздействии, а также позволяет безопасно исследовать электрогидравлический эффект и молнию в лабораторных условиях. Прибор можно использовать для изучения условий формирования блуждающих волн. В дальнейшем станет реальностью создание автоматических устройств, которые сгенерируют встречную волну для гашения разрушительных цунами и волн-убийц в охраняемых прибрежных зонах.

Предположение проверено и подтверждено на небольшом макете. GIF-анимация “Водяной” — формы волн: “одиночная башня”, “белая стена”, а также чудо-юдо с глазами и другие красивые элементы из воды, полученные при начальном для возникновения эффекта напряжении 145 вольт, показаны в тексте выше.
Любой желающий может повторить опыт и проверить предположение.
Читать дальше →
Всего голосов 152: ↑138 и ↓14+124
Комментарии92

Разработка плагина IntelliJ IDEA. Часть 1

Время на прочтение10 мин
Количество просмотров50K
За последнее время у меня накопилось достаточно материалов по разработке плагинов для IntelliJ IDEA, чем и собираюсь поделиться с хабрасообществом.

Среда разработки и инфраструктура


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

Для разработки плагинов подойдет любая современная версия Intellij IDEA – она уже включает в себя полный набор необходимого инструментария.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии13

STM32F4Discovery – подключаем камеру по интерфейсу DCMI

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

STM32F4Discovery – подключаем камеру по интерфейсу DCMI



Когда-то, подключая камеру от мобильного телефона к микроконтроллеру STM32F407VGT6 (который имеет место быть на плате STM32F4Discovery), я даже не думал о том, что данный контроллер имеет специальный аппаратный интерфейс для данного дела. Может быть, невнимательно читал даташит, но я всегда считал, что интерфейс DCMI имеется только у чипов в корпусах UFBGA176 и LQFP от 144 ног. Однако, не так давно, открыл для себя озвученную деталь: 100-ногий STM32F407 также имеет DCMI на борту.
Являясь большим любителем изучения и совместного запуска различного мобильного железа (в частности, LCD и камер) с МК, мимо такого открытия я просто так пройти не смог, и решил восполнить данный пробел в изучении периферии STM32. Собственно, данный материал и посвящен описанию осуществления возникшей затеи.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии22

5 правил верстки email-писем от Печкина

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

Сегодня мы хотели бы рассказать о базовых правилах верстки HTML в email-письмах. Как известно, на свете существует множество почтовых клиентов:
  • веб-версии у почтовых провайдеров (Gmail, Yandex, Mail, Yahoo итд.)
  • десктопные почтовые клиенты (Outlook, Bat, Thunderbird, Mac Mail)
  • мобильные почтовые клиенты (Blackberry, Android, Iphone, Ipad итд)


К сожалению, не существует обязательного стандарта верстки писем, который бы универсально поддерживался бы всеми клиентами. Часть поддерживает CSS3, часть нет, какие-то теги и аттрибуты поддерживаются, какие-то нет, не говоря уже о том, что поддержка HTML и CSS меняется даже в пределах одного почтового клиента от версии к версии. Последнее особенно заметно на примере Outlook (от Express и 2003 к Outlook 2011).

Что же необходимо знать тем, кто собирается самостоятельно верстать HTML-код для email-писем?
Посмотреть 5 правил верстки email
Всего голосов 56: ↑46 и ↓10+36
Комментарии24

Собираем CarPC на Android: недостроенный долгострой

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


Моя машина меня устраивает почти всем. Есть практически все, что нужно. В комплектации блютусный телефон, кнопочный климат-контроль, электростеклоподъемники на всех дверях, подогрев сидений, подогрев, регулировка и складывание зеркал, чип-ключ, CD-чейнджер на 6 дисков, но без MP3 и линейного входа. Вот этот прискорбный факт и привел меня к мысли начать собрать свой CarPC на базе андроида. Начал рассматривать варианты и покатился… появилось много идей.
Хочу поделиться с Вами!
Всего голосов 150: ↑142 и ↓8+134
Комментарии110

Подключение ЖК-панели от iPad к персональному компьютеру

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


Сломанный ноутбук или планшет бывает жалко выкидывать, тем более если у него сгорела материнка/видеокарта/процессор, а дисплей в полном порядке. В этом случае есть выход: можно подключить ЖКИ от мобильного устройства как второй/третий экран к персональному компьютеру. Лучше всего для этого подходит ЖК-дисплей от последних моделей iPad с размером 9,7" и разрешением сторон 2048х1536. Студент Варшавского университета Анджей Суровец (Andrzej Surowiec) сумел подключить retina-дисплей от iPad к ПК через DisplayPort на максимальном разрешении.
Читать дальше →
Всего голосов 87: ↑75 и ↓12+63
Комментарии53

JS модуль для Java разработчиков

Время на прочтение7 мин
Количество просмотров9.3K
Во всем мире объем используемого JS кода в приложениях растет очень сильно, что уже неоднократно подчеркивалось, посмотреть картинки на эту тему можно например тут или тут. Соответственно с ростом количества кода возникает необходимость структурирования данных, управления зависимостями и проч., которые на данный момент решает целый букет фрэймворков, например RequireJS в композиции с Backbone. С другой стороны в мире Java для управления зависимостями и контроля процесса сборки проекта используется Maven, который отлично справляется с задачей разделения больших проектов на модули, запуска тестов в нужное время и т.д. У некоторых разработчиков, уже давно использующих Maven для сборки проекта, может возникнуть желание вынести свой отлично структурированый JS код в отдельный модуль, тестировать его во время сборки и совершать с ним все операции, которые позволяют делать плагины, о чем и пойдет речь.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

Сравнение Angular, Backbone, CanJS и Ember

Время на прочтение7 мин
Количество просмотров94K
(Дата публикации оригинала — 12.04.2013)
Выбор JavaScript MVC фреймворка — тяжёлая работа. Нужно учесть много факторов, и число вариантов выбора может быть огромно. Достаточно взглянуть на проект ToDoMVC (о нем по-русски).

Я работал с 4 фреймворками: Angular, Backbone, CanJS и Ember. Поэтому решил сделать сравнение, чтобы помочь вам решить, какой из них использовать. Я выделю несколько факторов, которые вы можете использовать при выборе. Каждый фактор будет иметь оценку от 1 до 5 (больше — лучше). Я старался быть беспристрастным, но, конечно, оценки основаны на личном опыте.


Читать дальше →
Всего голосов 91: ↑83 и ↓8+75
Комментарии62

Беспроводные коммуникации «умного дома»

Время на прочтение13 мин
Количество просмотров150K
Когда начинающие (или продолжающие) «радиолюбители» наигрались со светодиодами и устали поворачивать сервы в различные положения, некоторые из них начинают прикладывать полученные знания к обычной бытовой сфере.
Как правило, это применение находится в двух областях — автомобиль или дом.
«Тюнить» авто лично мне как-то не интересно, а вот сделать собственное жилье чуточку «умнее» и комфортнее — достойный выбор.

Как же до такого дойти...
Всего голосов 77: ↑73 и ↓4+69
Комментарии56

Как стать ведущим разработчиком. Часть 1

Время на прочтение8 мин
Количество просмотров142K
Это перевод статьи, написанной Джоном Оллспоу, который на данный момент является старшим вице-президентом технического отдела в Etsy.

Продолжение перевода здесь

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

Но в то же время, все мои знакомые преуспевающие разработчики помнят своих наставников, которые научили их тому, что значит быть „ведущим“.
Читать дальше →
Всего голосов 233: ↑203 и ↓30+173
Комментарии76

STM32 + linux

Время на прочтение15 мин
Количество просмотров161K
Для разработки системы управления одной железякой после длительных поисков мною был выбран ARM-микроконтроллер семейства STM32 — STM32F103 (в «стоножечном» исполнении). А в качестве макетки для разработки и отладки — STM32P103 (там ножек хоть и меньше, но ядро то же самое). «Истории успеха» я понемногу выкладывал в своей ЖЖшке, но вот решил собрать все воедино и рассказать о том, каково же оно — программировать микроконтроллеры в линуксе. Сам проект лежит на sourceforge.

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии21

JavaScript SIP библиотека от авторов стандарта

Время на прочтение1 мин
Количество просмотров20K
Я уже писал заметку на эту тему, с того времени стала доступна еще одна JavaScript SIP библиотека. В первой статье я упоминал её, но на тот момент вся информация о библиотеке включала: описание авторов и видео демонстрирующее работу. Сейчас исходный код открыт под MIT лицензией, имеются документация и форум.

Примечательно, что данную библиотеку разрабатывают авторы того самого стандарта, который и описывает особенности SIP протокола при работе поверх WebSocket. Помимо этого разработчики указывают следующие достоинства:
  • легковесна, ~140КB
  • простой и мощный API
  • совместима с популярными SIP серверами
  • аудио-видео вызовы; мгновенные сообщения
  • статус пользователей (эта функция уникальна, пока отсутствует в других библиотеках)

От себя к преимуществам добавлю: компетентность и отзывчивость авторов, багрепорты закрывают очень быстро.

Под катом длинное подробное видео с пошаговой инструкцией в первой половине для тех кто захочет попробовать самостоятельно, и демонстрацией работы во второй половине (c 3:10). Кстати, в свежих версиях Chrome, WebRTC — протокол для обмена аудио-видео данными, доступен и включен по умолчанию.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии4

Умный дом, как я до такого докатился. Часть 1-я

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

Пару лет назад, когда стоял вопрос отделки новой квартиры, возникла тривиальная, казалось бы, задача.
Дано:
  • Кухня-студия (кухня совмещенная с холлом/коридором), три точки освещения.
  • Необходимо управлять освещением из двух точек. У входа в квартиру и на кухне.

Варианты решения:
  • Покупаем, так называемые, проходные выключатели, ставим три штуки на кухню, три в коридоре — вот оно счастье. Вот только получилось, что от коридора на кухню нужно вести 9 жил кабеля, некрасиво, спрятать некуда.
  • Покупаем готовые решения по управлению одним источником с нескольких точек.
    Точных чисел не помню, но получалось что-то около 10000р за точку освещения + 1000р за каждый выключатель, итого 36000р. Жаба.
  • Как это ни странно, но эту идею высказала жена, в общем-то далекая от IT: “ А помнишь, ты светофор в Яндексе делал? Может тут тоже что-то сам сообразишь?”
    В самом деле, а почему бы и нет, подумал я?

Но я не электронщик, я программист, причем контроллеры никогда не программировал, только полноценные сервера. Значит мозгом должен быть сервер. А раз ставить сервер, то управлять тремя лампочками — это из пушки по воробьям (даже, ядерным зарядом по мухам). Значит можно еще функций навешать.
Тут Остапа понесло (с), столица перемещается в Васюки. Три лампочки с выключателями превращаются в систему управления, мониторинга, видеонаблюдения и т. д.
Читать дальше →
Всего голосов 187: ↑180 и ↓7+173
Комментарии220

USB-IRPC: Апгрейд модуля розеток

Время на прочтение2 мин
Количество просмотров71K
В прошлый раз в комментариях поступило дельное предложение поставить твердотельные реле вместе обычных электромеханических.
Что я, собственно и сделал.
Неделю назад приехали сами реле SSR-25 DA:

Управляются они напряжением от 3 до 32В. Коммутируют наргузку до 25А от 24В до 380В. То, что нужно.
Бесшумные, на корпусе есть крупный красный светодиод, который горит при замыкании цепи.
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии66

Android — Сontinuous Integration. Часть 2

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

Содержание


  • Подготовка
  • Maven
    • Root
      • Build profiles
      • Plugins
    • App
      • Resource filtering
    • Lib
    • Test
  • Заключение
  • Ссылки


Пост рассчитан на читателей уже знакомых с основами maven’а и в ходе статьи акцент будет делаться на каких-то специфических, именно для андроида, моментах, а не на общих вопросах самого мавена. Если же вы до этого ни разу не работали с мавеном, то для начала можно почитать здесь и здесь.

Так же я не буду рассматривать установку и базовую настройку инструментов — JDK, Android SDK, Maven и IntelliJ IDEA должны быть установлены и работать. У вас должны быть настроены соответствующим образом переменные окружения JAVA_HOME, M2, M2_HOME и ANDROID_HOME. Так же, для удобства работы, рекомендую добавить в Path директории %ANDROID_HOME%/tools и %ANDROID_HOME%/platform-tools.

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

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии11

Запускаем Java-программы на GPU

Время на прочтение1 мин
Количество просмотров17K
На Github выложен исходный код компилятора Rootbeer, с помощью которого можно почти любой Java-код запустить на графическом процессоре, а также легко разделить Java-программу на фрагменты для CPU/GPU.

Компилятор опубликован под лицензией MIT, он прошёл тщательное тестирование и вполне пригоден для использования. По словам автора, это самый продвинутый транслятор байткода Java на платформу CUDA. Судя по всему, OpenCL тоже поддерживается.

Автор программы — преподаватель Сиракузского университета Фил Пратт-Желига (Phil Pratt-Szeliga).
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии37

Backdoor в вашем приложении на Java

Время на прочтение2 мин
Количество просмотров7.3K
Я недавно наткнулся на статью, описывающую простейший грувлет, позволяющий исполнить любой код на Groovy у Вас на сервере. Мне это показалось очень удобным для организации отладочного бэкдора.

Проблема в то, что грувлеты — это всё таки сервер, а у нас есть еще толстый клиент на Swing. Для него мне хотелось бы сделать нечто похожее, но встраивание какого нибудь embedded Jetty или Tomcat только для этого в клиент выглядело как то слишком.

По счастью, мне попалась на глаза и другая статья — про наличие в стандартной библиотеке Java простейшего веб сервера. Вот им то я и решил воспользоваться.
Читать дальше →
Всего голосов 10: ↑6 и ↓4+2
Комментарии15

Ectognathus, робот-хексапод на микро-сервах своими руками, часть вторая

Время на прочтение14 мин
Количество просмотров57K
Добрый день, уважаемые хабровчане. Это вторая часть статьи про разработку робота-хексапода. Первую часть вы можете найти тут.
В этой статье я расскажу непосредственно про производство самого робота, переход от моделей в SolidWorks к реальному устройству.
Читать дальше →
Всего голосов 88: ↑86 и ↓2+84
Комментарии79

Ectognathus, робот-хексапод на микро-сервах своими руками

Время на прочтение7 мин
Количество просмотров50K
Добрый день, уважаемые хабровчане. Представляю вашему вниманию статью, в которой я описываю процесс проектирования и создания шестиногого робота полностью с нуля. Вы не найдете здесь надоевших всем ардуин и готовых наборов «хексапод за 5 минут». Из-за большого объема информации, статья будет состоять из нескольких частей, описывающих разные этапы проектирования и освещающих грабли, на которые я наступал в процессе оного.
Итак, встречайте – Ectognathus.
Читать дальше →
Всего голосов 127: ↑126 и ↓1+125
Комментарии26

Информация

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