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

User

Send message

Java: IP-телефония с нуля

Reading time3 min
Views16K
В предыдущей статье «Транслируем звук по сети с помощью Java» я описывал способ приема и трансляции звука по сети встроенными средствами Java.

Здесь я продолжу развивать эту идею, и расскажу, как сделать с помощью Java простую систему IP-телефонии.

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

Полностью исходники можно посмотреть на github.

Всех заинтересовавшихся прошу под кат.
Читать дальше →

Краткий конспект по языку JavaScript

Reading time15 min
Views114K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →

Ethernet метеостанция 2 – Продолжение…

Reading time4 min
Views40K
Приветствую всех! Долговое время не имел возможности поведать общественности о том, во что же все же превратился мой проект.
Наконец дошли руки для написания еще одной статьи.

В первой моей статье, «Ethernet погодная станция», было поведано о проекте создания домашней метеостанции с определенным заделом на расширение функционала в будущем. На текущий же момент из проекта данное изделие перешло в раздел полноценного устройства. Работающего по принципу 24/7 и добросовестно сообщающего мне и моему семейству о состоянии погоды. Сразу скажу, что многое было изменено.

Изначально была идея использовать домашний сервер, но в дальнейшем, я все же пришел к тому, что будет более функционально и доступно использовать облачные сервисы для отображения и хранения данных. И тут я наткнулся на статью одного из читателей «Хабра» Евгения Богера evgeny_boger «Демонстрация работы Wiren Board Smart Home», где описывалось применение замечательного сервиса Ninja Blocks. На нем я и решил реализовать отображение данных.
Читать дальше →

Подключаем FB, VK, G+ в Android. Версия Light

Reading time9 min
Views29K
Встала передо мной задача – сделать постинг ссылок из Андроида в пару-тройку соцсетей. Причем, максимально простой и легкий – чтобы не плодить сущности и как можно меньше заморачиваться с токенами, сессиями и прочая. Задача, действительно, минимум – только размещение ссылки в собственном аккаунте пользователя. Если к ссылке можно легко добавить описания или картинки – сделать, но не упираться.

В силу разных причин были выбраны Facebook, Vkontakte и Google+. Планировала добавить Twitter, но его Fabric к тому времени еще не вышел, а использовать стороннюю библиотеку не хотелось (см. п.2 ниже). Позже добавлю.

В итоге, задача для этих трех соцсетей получилась следующей:

  1. Максимально простой программный интерфейс постинга ссылок.
  2. Использование только нативных SDK (из тех соображений, что эти знания пригодятся в дальнейшем).
  3. Минимум кода – только самое необходимое для работы.
  4. Работать все должно вне зависимости от наличия у пользователя установленного клиента соцсети. Но если он есть – использовать диалоговые окна клиента.
  5. Пользователю должно выводиться сообщение об успешном или нет размещении записи.
  6. Должна быть возможность программно реагировать на успешное размещение записи.

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

16 занимательных проектов для вашего нового Raspberry Pi

Reading time4 min
Views260K


Новый Raspberry Pi стал меньше, дешевле (всего $20) и энергоэффективней. Неплохое обновление для устройства, которое и так отлично продаётся. Мы собрали наиболее крутые проекты на базе Pi, которые можно реализовать как на новой, так и на оригинальной модели.
Читать дальше →

Еще одно сердечко на Atmega

Reading time2 min
Views50K
Не так давно увлекся схемотехникой для музыки (усилители, гитарные эффекты) и как-то незаметно перешел с аналоговой на цифровую электронику. Выбор пал на микроконтроллеры фирмы Atmel, потому как товарищ довольно неплохо в них разбирался и, если что, было у кого спросить. Первым делом собрал программатор (клон STK500) и принялся за свой первый проект: мигание светодиодами. А так как дело близилось к 14 февраля решил совместить приятное с полезным и порадовать свою любимую супругу. Вдохновителем идеи был пост пользователя Terehoff: «Чем порадовать любимую 14 февраля».
Читать дальше →

Транслируем звук по сети с помощью Java

Reading time5 min
Views35K
Стало мне интересно поэкспериментировать с передачей звука по сети.
Выбрал для этого технологию Java.
В итоге написал три компоненты — передатчик для Java SE, приемник для Java SE и приемник для Android.

В Java SE для работы со звуком использовались классы из пакета javax.sound.sampled, в Android — классы android.media.AudioFormat, android.media.AudioManager и android.media.AudioTrack.
Для работы с сетью — стандартные Socket и ServerSocket.

С помощью этих компонент удалось успешно провести сеанс голосовой связи между Дальним Востоком России и Нидерландами.

И еще одно возможное применение — если установить виртуальную звуковую карту, например, Virtual Audio Cable, можно транслировать музыку на другие устройства, и, таким образом, слушать музыку одновременно в нескольких комнатах квартиры (при наличии соответствующего количества девайсов).

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

Arduino, модуль Nokia 5110 LCD и кириллица

Reading time3 min
Views98K


Понадобилось мне, для небольшого проекта на ардуино, выводить кое-какую информацию, естественно на экран, а не в консоль. Купил парочку LCD модулей а-ля Nokia 5110 с разрешением 84 х 48 пикселей. Библиотеку решил использовать от Adafruit, точнее две Adafruit-PCD8544-Nokia-5110-LCD-library и Adafruit-GFX-Library. Если кто с ними ещё не знаком – позволяют выводить не экран текст (шесть строк по 14 символов), отображать заранее подготовленные изображения, рисовать (линии, прямоугольники, круги и т.д.), ну и рисовать попиксельно. Скетч pcdtest отработал нормально, и я приступил к написанию своего велосипеда проекта. Тут то и начались приключения…
Читать дальше →

Интроверты в IT. Как использовать особенности своего характера для достижения целей

Reading time13 min
Views106K
Несколько лет назад я работал сценаристом обучающих курсов. Однажды утром, начальник встретил меня с лицом «нам надо поговорить».

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

Я отклонил это заманчивое предложение и благополучно забыл о нем. Но на следующей неделе я снова встретился с этим психологом. Сначала она сидела на диване и разглядывала каталоги. А потом села неподалеку с видом «я здесь если тебе понадобится помощь». Через какое-то время, мне это надоело и я сказал, что я об этом думаю.



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

Raspberry Pi — что можно сделать на основе «малинки»? Часть 2

Reading time2 min
Views116K


В первой части подборки рассказывалось о том, что на основе мини-ПК Raspberry Pi можно сделать суперкомпьютер, метеозонд и даже праздничную систему освещения.

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

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

Недорогие, маленькие, сетевые компьютеры — небольшой обзор

Reading time6 min
Views96K
«Чтоб ты жил в интересные времена!» — якобы старинное китайское проклятие.
Да, нам с вами повезло или «повезло» жить в действительно интересные времена (вариант — «в эпоху перемен»). Возможно, это на самом деле проклятие, особенно с точки зрения мифических древних китайцев. Однако факт остается фактом: то, что еще пара десятков лет назад казалось невозможным, сейчас доступно практически каждому. Особенно это заметно в нашей отрасли — информационные технологии и цифровая электроника развиваются просто какими-то совершенно фантастическими темпами. Функциональные возможности, быстродействие, миниатюрность и (относительная) дешевизна современных цифровых решений поражает воображение.
Еще совсем недавно сетевой компьютер размером меньше кредитки и стоимостью в несколько сотен рублей, пригодный для создания на его базе интересных самостоятельных проектов энтузиастами-одиночками с относительно невысоким уровнем знаний в области электроники и программирования, казался весьма отдаленной перспективой. И вот уже мы можем смело выбирать из десятка (как минимум) альтернатив! Давайте посмотрим, что сейчас можно приобрести буквально за несколько десятков долларов, чтобы построить вокруг этого нечто впечатляющее и даже, может быть, полезное.
Итак, поехали.

Раннер под iOS с пятью персонажами

Reading time4 min
Views11K
Привет, хабр!

Так случилось, что я довольно давно занимаюсь разработкой под iOS, но вот незадача — никогда не писал игры. После змейки в 13 лет под IBM 386 наступил перерыв до 2014 года, когда я набрался сил воплотить теплую ламповую мечту в реальность. Что из этого получилось? Графика сводилась так:



А геймплей хотелось сделать похожим на это:


Если интересно, прошу под кат! (много картинок!)
Читать дальше →

Бинарные часы с будильником и таймером на Arduino Uno

Reading time9 min
Views72K
Привет, Хабр!



Уже достаточно давно меня интересовала платформа Arduino, но никак до неё не доходили руки. И вот, недавно я приобрёл две платы Arduino и различные радиодетали. Наигравшись с парой диодов, я решил собрать что-нибудь полезное и интересное. Я давно хотел обзавестись бинарными часами и быстро понял, что приобретение Arduino — замечательная возможность сделать бинарные часы по своему вкусу.

С точки зрения электроники, собрать схему бинарных часов не так сложно. Я усложнил себе задачу и решил не отказывать себе в количестве кнопок и светодиодов. По начальному плану, на проект должно было пойти 22 диода, 6 кнопок и 1 пьезопищалка. Сначала я хотел собрать часы на Arduino Mega, т.к. на Arduino Uno недостаточно пинов для управления всем этим напрямую, однако потом я отказался от этой идеи и решил приобрести несколько выходных сдвиговых регистров 77HC595, так как это более рациональное решение проблемы.
Читать дальше →

Ардуино на службе здоровья

Reading time10 min
Views120K
В статье описан путь от идеи до создания домашнего портативного анализатора качества воздуха (CO2, влажность, температура, давление).

Вступление


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

Видеонаблюдение удалённого объекта на Debian+AVReg+gsm

Reading time4 min
Views14K
Может, кому-то пригодится мое решение для оффлайн-наблюдения за объектом.

Появился у меня участок земли под строительство дома и пришла в голову мысль организовать удаленное наблюдение за ним на предмет выявления посторонних (или кто там без меня шарится). С самим наблюдением и записью проблем не наблюдалось, проблема стояла как передать данные домой, не имея выделенного канала (да и вообще никакого канала).
Подробности

Программирование для начинающих — пример создания Азбуки Морзе на базе визуальной системы Snap!

Reading time9 min
Views51K


Одной из целью популяризации DIY-робототехники, для меня, является привлечение внимания к IT, к программированию. И в этом плане мне интересны визуальные среды программирования, где простым Drag&Drop можно создавать программы. Для тех кто только начинает изучать компьютер — такой способ программирования может на начальном этапе вызвать интерес (благодаря своей простоте), и дальше уже способствовать к самостоятельному изучению (чего-то более сложного).

Думаю многие слышали про Scratch — это «классика жанра» (созданная в MIT, идея 2003 и выход в релиз 1.0 в январе 2006 году), но для его работы необходимо установка ПО на компьютер (или Flash). Некоторое время назад в University of California at Berkeley была разработана система Snap!, интерфейсе которой близок к Scratch, но работает в браузере, на базе классических html/js/css. То есть для работы с ней — вам достаточно только браузера (и к тому же она open-source).

Вот о веб-системе визуального программирования Snap! я и хочу рассказать.

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

Программа будет при нажатии на клавиши — рисовать соответствующие символы, и так же «озвучивать». На КДПВ приведена итоговая программа, и справа написано «HI HABR, HABR HI».

Посмотреть демо
Если кому-то хочется сразу увидеть результат, то демо здесь.

Управление:

"клавиша вверх" — инициализация параметров и очистка (лучше нажать после загрузки — выставится ширина точек)
"клавиша вниз" — перевод строки
клавиши "h", "i", "a", "b", "r" — рисование и озвучивание соотв. буквы с помощью азбуки Морзе.
Читать дальше →

Пишем плагин для XBMC с собственным интерфейсом: часть III — API и микро-фреймворк

Reading time7 min
Views12K

Вступление


Это III часть цикла статей, посвященных написанию плагинов для XBMC с собственным интерфейсом. В предыдущих частях (часть I и часть II) я рассказал об основных принципах создания интерфейса плагинов XBMC и дал несколько простых примеров. В этой части я хочу совсем кратко рассказать о различных API для взаимодействия с XBMC, продемонстрировать написанный мною микро-фреймворк, упрощающий компоновку интерфейса.
Читать дальше →

Если вы хотите следовать своей мечте, скажите «нет» отвлекающим делам

Reading time4 min
Views162K
imageСтатьи, написанные Oliver Emberton, постоянно вызывают повышенный интерес. Сегодня представляем вам перевод самой свежей публикации автора.

Дисклэймер: мы не ставили себе цель дословного или абсолютно точного перевода оригинала. Главное — передать его смысл. Просим помнить об этом при прочтении. Итак, начнем!

Если вы хотите следовать своей мечте, скажите «нет» отвлекающим делам!

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

Миниатюризация в фототехнике: от пленки к цифрозеркалкам, от зеркалок к беззеркалкам

Reading time15 min
Views19K
Не сомневаюсь, что большая часть читающих этот пост родилась еще в пленочную эру, и прекрасно помнит, зачем нужно зажигать особую красную лампу, и чем фиксаж отличается проявителя. У себя в ванных мы превращали отщелканную пленку в настоящие фотографии, а многие этим балуются и до сих пор. Но, цифровая фотография сегодня вне конкуренции, на самом деле, она существует с 1975 года. А первая цифрозеркалка появились уже в 1991 году. Kodak DCS 100 была модифицированной пленочной Nikon F3 с внешним жестким диском. По началу, это были дорогие и громоздкие решения. К тому же, вплоть до появления Nikon D1 и Canon EOS 1D в 2001 году, качество снимков, получаемых с пленки, радикально превосходило цифру.

image
Процесс проявки

Что будущее именно за цифровым фото стало окончательно понятно в 2003 году. И успех первой недорогой зеркалки Canon 300D, с ценником менее 1000$, тому подтверждение. Вплоть до 2008 года зеркалки практически безраздельно царствовали на рынке, однако серьезные камеры со сменной оптикой, но без зеркала, отстали от появления 300D всего на один год.
Читать дальше →

Information

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