В своем первом посте на Хабре я бы хотел рассказать о том, как получать данные датчиков в ОС Android, а конкретно — угол наклона вашего аппарата во всех трех плоскостях. Заинтересовавшихся прошу под кат.
User
Spectralink KIRK KWS400. Бюджетное, профессиональное DECT решение
3 min
14K
Новинка во «взрослом» DECT! И на мой взгляд — это действительно то, чего нам не хватало.
Что я понимаю под понятием взроcлый? GAP, SIP, роуминг, handover…
Если Вы не хотите подвязываться на vendor lock-in оборудование, то на сегодняшний день, по моему мнению, стоит обратить внимание только на двух производителей: AAstra и Spectralink (Polycom) KIRK.
Разумеется, если Вам нужно 5 трубок, и достаточно одной базовой станции с радиусом 75-150м (в зависимости от помещения), Вы рассмОтрите бюджетные SOHO железки: Grandstream DP715, Siemens C610, Yealink W52 и закроете проект. Если это можно будет назвать проектом, конечно, по развертыванию беспроводной корпоративной связи.
А что если у Вас склады, большой офис, несколько этажей? Вам будут просто необходимы десятки пользователей, несколько базовых станций и хэндовер, о котором я говорил в начале.
И да, я знаю, что на рынке есть свежая поделка от китайцев в виде RTX, 200 пользователей, до 40-ка базовых станций, но это так некрасиво привязывать к трубке ценой более 200$ (7000 руб.), а другие с ним попросту не работают.
Русский человек хочет и рыбку сьесть и… хорошо при этом сэкономить.
В линейке Spectralink (Polycom) ранее существовало только одно успешное решение. Это KIRK сервер 6000 обзор которого уже есть на хабре. KIRK 300 был тоже неплох, но цена в 500$ в сегменте бюджетных DECT систем не смогла помочь ему выйти на схожие позиции продаж.
Spectralink KIRK 2500 и KIRK 8000 стоят сумасшедших денег, а от KIRK 6000 отличаются только возможностью подключения аналоговых линий…
Зачем эти системы вообще нужны? Особенно в свете того, что на рынке появился обновленный KWS 6500, который умеет быть не только SIP/DECT трансфером, но и простенькой АТСкой.
KIRK 400 будет хитом, и его обзор Вы можете прочесть под катом.
+4
Интерфейс JTAG? — Это очень просто
6 min
267KTutorial
Многие знакомы со словом «JTAG», но знакомство это скорее всего поверхностное. В этой статье я хочу перевести Вас на новый уровень, так сказать «во френдзону». Возможно, для многих я не открою ничего нового, но надеюсь тем, кто давно хотел ознакомиться, будет интересно почитать. Итак, от винта.


+82
ConceptNet 5 — настоящий ИИ не за горами
3 min
33K
ConceptNet — семантическая нейро-сеть, содержащая много вещей, которые компьютеры должны знать о мире, особенно при понимании текста написанного людьми.
Сеть построена из узлов, представляющих определенные слои и концепции, в виде слов или коротких фраз естественного языка и знаков отношений между ними. Это могут быть любые вещи, которые компьютерам нужно знать, чтобы искать информацию лучше, отвечать на вопросы и понимать цели людей. Если вы хотите построить свой собственный Watson вместе с ConceptNet, то это должно быть отличной целью для начала!
+45
Совместный запуск Linux и baremetal OS
4 min
17KНедавно я выложил в сеть под BSD лицензией небольшой проект на 8 килострочек C кода. Официально это коллекция бенчмарков для моих клиентов — вендоров промавтоматики. Код очень специфический, и, на первый взгляд, малоприменим за пределами узкой области PLC и motion control. Но есть небольшая изюминка, на которой я не очень акцентировал внимание в статье на IDZ. В поставку бенчмарков включена baremetal среда для их исполнения. В этом посте я опишу, что это такое, и как ее можно использовать.
+29
JavaScript трассировка, отладка, профилирование – заполнение пробелов
5 min
13KГодами я использовал Chrome DevTools, Firebug и даже Opera Dragonfly для отладки, трасировки и профилирования моего JavaScript кода. Замечу, что использовал эти замечательные инструменты не только для работы с JavaScript, но и для отслеживания событий сети, отладки CSS, работы с DOM.
Однако иногда я попадал в некие зоны отчужднения, в которых приведенные выше инструменты помочь мне не могли по определенным причинам, а хотелось бы.

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

+44
OpenMCAPI: одновременный запуск Linux и RTOS на многоядерных процессорах
10 min
15K
В повседневной практике разработчика встраиваемых систем приходится сталкиваться с необходимостью запуска двух и более разноплановых ОС на n-ядерных системах на кристалле. Это, как правило, Linux и специализированная RTOS. На плечи Linux ложится работа с тяжеловесными стеками протоколов, а RTOS же занимается задачами реального времени.
Одна из основных задач, которая встает при такой организации системы — обеспечение механизма взаимодействия, то есть межъядерный обмен данными. Если вам интересно узнать один из вариантов решения на базе открытой библиотеки OpenMCAPI, пролистать пару десятков строк программного кода и увидеть реальные цифры пропускной способности при использовании этой библиотеки, добро пожаловать под кат.
+33
Nginx boilerplate: Быстрая и изящная настройка nginx
1 min
38KХочу поделиться своими наработками по настройке nginx, которые, возможно, помогут кому-то при старте нового проекта или избавят от необходимости копипастить очередной vhost.
Я отметил две проблемы подавляющего числа конфигов nginx'а, попадавших мне на глаза:
С помощью моего подхода, надеюсь, эти и многие другие проблемы будут устранены.
Я отметил две проблемы подавляющего числа конфигов nginx'а, попадавших мне на глаза:
- «Всё в одном файле»
- Дублирование настроек
С помощью моего подхода, надеюсь, эти и многие другие проблемы будут устранены.
+67
QtDbus — тьма, покрытая тайною. Часть 1
7 min
29KНаше путешествие началось Qt Graphics Framework, нас завербовали его светлой стороной, а потом мы долго получали граблями по разным частям тела.
Данная статья — это спин-офф основного сюжета. В ней сказ пойдет о QtDBus. Этот модуль Qt появился еще в четвертой версии и был хоть как-то документирован и снабжен примерами. Но грянул Qt 5.0, и уж не знаю по чему, но это привело к тому, что на сторону тьмы перешла вышеназванная дока..
Данная статья — это спин-офф основного сюжета. В ней сказ пойдет о QtDBus. Этот модуль Qt появился еще в четвертой версии и был хоть как-то документирован и снабжен примерами. Но грянул Qt 5.0, и уж не знаю по чему, но это привело к тому, что на сторону тьмы перешла вышеназванная дока..
+30
Учимся писать userscript'ы
7 min
294KTutorial

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!
Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.
+124
Plasmoid на чистом QML и JavaScript
8 min
9.9K
На хабре еще не было ни одного поста про создание плазмоида на чистом QML с использованием JavaScript. Данный пост призван исправить данный недостаток.
+38
jQuery плагин для добавления ссылок в буфер обмена
3 min
19KУ многих из нас есть блоги, интернет-магазины, новостные сайты etc… Понятное дело стараемся опубликовывать оригинальный контент, но что же происходит после появления контента в интернетах, его конечно же просматривают и если он интересный, пользователи иногда обмениваются ссылкой на страничку с контентом. Новые переходы на нужную страницу и нам очень хорошо, а что если наш отличный текст просто взяли скопировали и скинули в аську\скайпик\почту — наш текст ушел, а перехода нету :(.

Запретить копирование, это очень неправильно, весело и смешно ©, но мы ведь можем при копировании добавить в буфер обмена ссылку на наш сайтик. Рассмотрим как же нам это лучше сделать:

Запретить копирование, это очень неправильно, весело и смешно ©, но мы ведь можем при копировании добавить в буфер обмена ссылку на наш сайтик. Рассмотрим как же нам это лучше сделать:
+59
«Нужна надежная беспроводная сеть»
6 min
36K
В последнее время в нашу компанию стали чаще приходить не просто запросы «посчитайте мне N точек доступа и контроллер», а уже — «нам нужна надежная беспроводная сеть, в которой пользователи смогут использовать собственные гаджеты в работе». Сегодня мы расскажем, что мы делаем и какими инструментами пользуемся в таких случаях.
+24
Симуляция жизни в системе Darwinbots. II. Симуляция и простейший бот
15 min
14KTutorial

Приветствую вас еще раз, дорогие хабражители!
Эта статья выкладывается в разгар сессии, так что я могу пропасть из комментариев.
1. Первое знакомство
2. Симуляция и простейший бот
Сегодня разберёмся с настройками симуляции и посмотрим на простейшего бота (или робота, как вам будет удобно). Нет, я не буду досконально рассматривать интерфейс программы – это будет вашим домашним заданием:-) И да, само понятие «генетический алгоритм» четко расписано в Википедии, поэтому опустим это объяснение.
+12
Практика использования Freefem++
10 min
19KВ ранее опубликованном посте мы рассказывали об использовании библиотек с открытым кодом Freefem++ и NetGen в программе моделирования аэродинамических процессов. В данной статье более детально рассмотрим базовые возможности Freefem++ в качестве небольшого введения в его входной язык. Это даст начальные сведения, которые часто бывают необходимы разработчикам при выборе сторонних компонентов для включения в проектируемое приложение.
+8
Как запустить программу без операционной системы: часть 4. Параллельные вычисления
18 min
30KПосле долгого перерыва продолжаем делать интересные штуки, как всегда на чистом железе без операционной системы. В этой части статьи научимся использовать весь потенциал процессоров: будем запускать программу сразу на нескольких ядрах процессора в полностью параллельном режиме. Чтобы провернуть такое, нам потребуется многое сделать для расширения функциональности программы полученной в части 3.
Просто так выполнять какие-то вычисления на ядрах процессора – скучно, поэтому нужна задача, которая требует больших вычислительных ресурсов, хорошо раскладывается на параллельные вычисления, да и выглядит прикольно. Предлагаем сделать программу, которая рендерит простенькую 3D-сцену, используя алгоритм обратной трассировки лучей, или, по-простому, Ray Tracing.
Начнем с самого начала: наша цель параллельные вычисления на всех ядрах процессора. Все современные процессоры для PC, да и ARM уже тоже (я молчу про GPU) – это многоядерные процессоры. Что же это означает? Это означает, что вместо одного вычислительного ядра у процессора на одном компьютере присутствует несколько ядер. В общем случае, все выглядит несколько сложнее: на компьютере может быть установлено несколько сокетов (чипов процессора), в рамках каждого чипа (в рамках одного кристалла) может находиться сразу несколько физических ядер, а в рамках каждого физического ядра может находиться несколько логических ядер (например, те, что возникают при использовании технологии Hyper Threading). Все это схематично представлено на рисунке ниже, и называется топологией.

Просто так выполнять какие-то вычисления на ядрах процессора – скучно, поэтому нужна задача, которая требует больших вычислительных ресурсов, хорошо раскладывается на параллельные вычисления, да и выглядит прикольно. Предлагаем сделать программу, которая рендерит простенькую 3D-сцену, используя алгоритм обратной трассировки лучей, или, по-простому, Ray Tracing.
Начнем с самого начала: наша цель параллельные вычисления на всех ядрах процессора. Все современные процессоры для PC, да и ARM уже тоже (я молчу про GPU) – это многоядерные процессоры. Что же это означает? Это означает, что вместо одного вычислительного ядра у процессора на одном компьютере присутствует несколько ядер. В общем случае, все выглядит несколько сложнее: на компьютере может быть установлено несколько сокетов (чипов процессора), в рамках каждого чипа (в рамках одного кристалла) может находиться сразу несколько физических ядер, а в рамках каждого физического ядра может находиться несколько логических ядер (например, те, что возникают при использовании технологии Hyper Threading). Все это схематично представлено на рисунке ниже, и называется топологией.

+56
Настраиваем OpenVPN на Linux Server'e с авто-подключением iOS устройств за 5 минут
2 min
42K
В наше время, вопрос защиты своего трафика становится все актуальней, для решения проблемы конфиденциальности можно использовать множество методов.
Сегодня я расскажу о том, как за 5 минут настроить работающий VPN On Demand на iOS устройстве при наличии своего Linux сервера.
VPN On Demand — VPN Который подключается по запросу / переподключается при разрыве
+21
Опыт использования Freefem++ и NetGen в программе моделирования аэродинамических процессов
12 min
14KВведение
Авторам данной статьи довелось выполнить довольно редкий по своему характеру проект. Требовалось разработать коммерческую программу моделирования процессов движения воздушной среды в чистом помещении. Чистое помещение — это производственное помещение, отвечающее определенным требованиям по чистоте воздуха, температуре и скорости его движения. Основной показатель чистоты — это класс чистоты, который определяется ГОСТом по концентрации частиц в воздухе. Потоки воздуха в чистом помещении направляются так, чтобы обеспечить эффективное удаление пыли и аэрозолей из помещения. Требования могут также ограничивать градиенты температуры в пространстве и во времени. Программа Cleanroom предназначена для использования в качестве инструмента проектировщика чистых помещений. С ее помощью проектировщик должен выполнять размещение оборудования и элементов вентиляции, а по результатам моделирования процессов в воздушной среде определять степень соответствия варианта размещения предъявляемым требованиям по чистоте.
+12
Как Яндекс распознаёт музыку с микрофона
10 min
161K


В мире есть всего несколько специализированных компаний, которые профессионально занимаются распознаванием музыкальных треков. Насколько нам известно, из поисковых компаний Яндекс стал первым, кто стал помогать российскому пользователю в решении этой задачи. Несмотря на то, что нам предстоит ещё немало сделать, качество распознавания уже сопоставимо с лидерами в этой области. К тому же поиск музыки по аудиофрагменту не самая тривиальная и освещённая в Рунете тема; надеемся, что многим будет любопытно узнать подробности.
+305
Зачем Google добавляет while(1); к своим JSON-ответам?
2 min
68KTranslation
Это позволяет избежать CSRF/XSRF-атак (подделки межсайтовых запросов).
Рассмотрим следующий пример: допустим у Google есть URL вида
Рассмотрим следующий пример: допустим у Google есть URL вида
gmail.com/json?action=inbox
, который возвращает 50 первых сообщений вашего почтового ящика в формате JSON. Злоумышленник, чей сайт находятся на другом домене, не может выполнить AJAX запрос, обратившись по данному URL, чтобы получить данные, ввиду same origin policy (правило ограничения домена). Но ничто не мешает злоумышленнику включить вышеуказанный URL на свою страницу с помощью тега .
+162
Information
- Rating
- 4,070-th
- Registered
- Activity