Как стать автором
Поиск
Написать публикацию
Обновить
59.33

Проектирование API *

О создании API

Сначала показывать
Порог рейтинга
Уровень сложности

Вывод видео с нескольких web-камер на одной странице

Время на прочтение7 мин
Количество просмотров26K
Как-то раз я приуныл, делать ничего не хотелось, и тут я вспомнил, что в детстве мне сильно хотелось иметь пульт видео наблюдения, как у какого-то злодея из кино, который сидит в темной комнате и хохочет, наблюдая за беспомощными людишками, которые пытаются найти выход. Ну и освежив свои детские воспоминания, я решил воплотить их в жизнь, ну ту часть с пультом наблюдения, без людишек. И тут моим другом стал шагающий семимильными шагами HTML5, а если точнее Stream API.
Так как я раньше уже использовал getUserMedia для захвата звука с микрофона, я подумал, что с видео тоже не будет никаких проблем, но они все же вылезли на свет. Т.е. проблем с самим захватом видео-потока не было, а вот с одновременным выводом данных с нескольких источников на одной странице оказалось не все так просто, как хотелось.

Итак, начнем с самого начала, а именно с захвата и вывода видео с одного источника. Для этого мы будем использовать ф-ю getUserMedia, которая поддерживается во всех нормальных браузерах старших версий (Stream API), ну разумеется кроме IE.
Читать дальше →

Интеллектуальные ручки пользовательского объекта в MultiCAD.NET

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


Удобство редактирования чертежей является одной из ключевых характеристик систем автоматизированного проектирования. Важным инструментом для работы с объектами чертежа служат ручки (grips) — специальные маркеры в ключевых точках объекта, которые позволяют видоизменять объект с помощью мыши, без использования меню или командной строки.

Механизм управления ручками в MultiCAD.NET позволяет работать как с простыми, так и интеллектуальным ручками. Про простые ручки мы писали в одной из прошлых статей, здесь же мы рассмотрим интеллектуальные ручки, которые, помимо формы (круглые, треугольные, ромбовидные и т.д.), отличаются от простых тем, что они могут изменять отдельные параметры объекта, вызывать всплывающее меню или выполнять набор действий, определенный в обработчике. Кроме, этого API интеллектуальных ручек позволяет также создавать и простые ручки, но используя при этом новый, унифицированный подход.

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

Модуль добавления доменов из Directadmin в DNSmanager

Время на прочтение5 мин
Количество просмотров2.1K
Встал вопрос о создании ДНС кластера на базе DNSmanager. Часть серверов работает под управлением directadmin.
Небольшое отступление по логике работы dnsmanager:
— при создании реселлера со своими NS серверами создается и база с одноименным названием;
— все пользователи реселлера пишут домены в базу реселлера (имя только свой логин и пароль), как следствие, у каждого пользователя свои домены. Это нужно для того чтобы кто-то не добавил домен (который уже есть) на другом сервере (на сервере домен добавится, а в ДНС кластер не уйдет так как такой домен уже есть, но если все сервера используют один и тот же логин и пароль, то при удалении — домен удалится).

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

Модуль авторизации для сайта, использующий Wargaming.net Public API

Время на прочтение5 мин
Количество просмотров18K
С момента выхода WG P API в бета тест, самым популярным вопросом стал «как сделать авторизацию на сайте».
Так уж сложилось — человек существо ленивое.
Дабы упростить жизнь другим участникам Wargaming Developer Partner Program, хочу поделиться свои опытом создания модуля авторизации для сайта.
Читать дальше →

Автоматизация жизненного цикла приложений с Infobox Jelastic API

Время на прочтение8 мин
Количество просмотров2.9K
Jelastic Cloud API позволяет автоматизировать действия для обеспечения жизненного цикла приложений и расширить функциональность платформы, связывая Jelatic с другими сервисами. Используя API вы можете программно создавать окружения, разворачивать приложения и выполнять другие задачи, которые возможно сделать из панели управления Jelastic, но не ограничиваясь ими.



Jelastic API следует REST принципам. Взаимодействие происходит через HTTP протокол. Преимущество такого подхода — широкая расширяемость протокола HTTP. Вы можете использовать REST API практически с любым языком программирования.

В этой статье вы узнаете, как использовать Jelastic Cloud API и Jelastic Client Library (Java) на облачном хостинге Infobox. В конце статьи 300 рублей на счет Infobox Jelastic в подарок (получить можно только один раз).
Читать дальше →

Magento шаг за шагом: REST API

Время на прочтение6 мин
Количество просмотров15K
В предыдущей статье мы рассмотрели создание «скелета» для экспорта заказов. В этой же рассмотриим создание такого же скелета, но импорта через REST API.

С Вики: REST (сокр. от англ. Representational State Transfer — «передача репрезентативного состояния») — в более употребительном узком смысле под REST понимается метод взаимодействия компонентов распределённого приложения в сети Интернет, при котором вызов удаленной процедуры представляет собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют REST-запрос), а необходимые данные передаются в качестве параметров запроса. Этот способ является альтернативой более сложным методам, таким как SOAP, CORBA и RPC.
Читать дальше →

Пишем Instagram виджет для сайта. Инструкция для любопытных. Готовое решение для всех остальных

Время на прочтение6 мин
Количество просмотров203K
image Недавно мне потребовалось интегрировать в сайт Instagram виджет. Чтобы пользователи видели последние опубликованные фотографии. Может даже подписывались.

Тут же выяснилось, что официального виджета у Instagram нет. Более того, с Instagram можно взаимодействовать исключительно через запросы к API. Никаких тебе JavaScript библиотек, генераторов кода и дизайна. Всё нужно делать руками.

Сразу нашлось множество сторонних сервисов разной степени платности и бесплатности. Объединяло их одно – клиент получает лишь код вызова виджета, всё остальное тянется с сервиса. Меня лично это не устраивало. Почему нет бесплатного standalone решения с открытым исходным кодом? Может быть я плохо искал? В общем, я решил внести свои пять копеек.

Инструкция по созданию виджета и готовое решение под катом.

Небольшое примечание. С момента написания этой статьи прошло уже семь месяцев. За это время виджет был установлен на около 80 ресурсах, создан репозиторий на GitHub, добрый человек подарил мне инвайт, виджет сменил механизм кэширования, обзавёлся собственным сайтом, добрые люди на его основе сделали плагин для CMS Битрикс, а я так и не нашёл аналогов в сети.
Читать дальше →

Аутентификация и авторизация в ASP.NET Web API

Время на прочтение5 мин
Количество просмотров79K
Вы создали WebAPI и теперь хотите контролировать доступ к нему? В этой серии статей мы рассмотрим несколько вариантов защиты WebAPI от неавторизрованых пользователей. Серия будет охватывать обе стороны, и аутентификацию и авторизацию пользователей.

  • Аутентификация — позволяет однозначно идентифицировать пользователя. Например, Алиса входит в систему со своим логином и паролем, и сервер использует эти данные для аутентификации Алисы.
  • Авторизация решает может ли пользователь выполнить те или иные действия. Например, Алиса может иметь право на чтение ресурса, но не может создать новый ресурс.


Первая серия статей дает общий обзор аутентификации и авторизации в ASP.NET Web API. Другие статьи описывают общие сценарии аутентификации для WebAPI.
Раскрыть тему

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

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

Вместо введения


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

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Цели:


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

Задачи:


Определить аудио-системы распознавания речи, которые попадают под понятие закрытого исходного кода. Рассмотреть наиболее известные варианта речевых систем преобразования голоса в текст, для перспектив интеграции видео-модуля в наиболее оптимальную голосовую библиотеку, которая имеет открытое API для совершения данной операции. Сделать выводы целесообразности использования аудио-систем распознавания речи на базе закрытого исходного кода под наши цели и задачи.
image
Читать дальше →

Управление сериализацией объектов в MultiCAD.NET

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


В предыдущей статье мы рассказали о подходе, который используется для сериализации пользовательских объектов в MultiCAD.NET API. Тогда мы говорили о принципах применения данного подхода для обеспечения совместимости версий объектов и рассмотрели самую простую ситуацию, когда новая версия объекта получается из предыдущей путем добавления дополнительных полей. Сегодня мы предлагаем вашему вниманию обзор процесса обеспечения совместимости в случае более серьёзных изменений, таких как удаление, переименование полей или изменение их типов.
Читать дальше →

«Гугл» запустил API для мониторинга данных своих облачных сервисов

Время на прочтение1 мин
Количество просмотров5.9K
Google Cloud Monitoring Read API, позволяющее извлекать данные о работающих в облаке Google сервисов — загруженность ЦПУ, оперативной памяти, остаток места на диске и другие — стало доступно разработчикам и всем желающим со вчерашнего дня.


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

Wargaming Developers Contest: семь главных вопросов о конкурсе

Время на прочтение6 мин
Количество просмотров18K
image

Сегодня при содействии Хабра мы запускаем WGDC — первый официальный конкурс Wargaming для сообщества разработчиков. Цель конкурса — актуализировать наш формат взаимодействия с разработчиками приложений и модов игрового клиента, поискать точки соприкосновения и сделать шаг к взаимовыгодному сотрудничеству.

Мы прекрасно понимаем, что в связи с конкурсом у вас могут возникнуть вопросы, на которые правила не дадут ответа. Ниже мы попытаемся охватить самые актуальные из них и рассказать, зачем Wargaming придумал WGDC, какую пользу он может принести участникам, чего мы ожидаем от разработчиков, а также кратко пробежим по самим правилам. Если вопросы останутся и после прочтения поста — задавайте их в комментариях.

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

Wargaming Public API

Время на прочтение7 мин
Количество просмотров28K
Wargaming Developers Partner Program
Wargaming.net Public API — набор общедоступных программных интерфейсов, которые предоставляют доступ к проектам Wargaming.net, включая игровой контент, статистику игроков, данные энциклопедии и многое другое.

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

Ближайшие события

О бедном C++ API замолвите словцо!

Время на прочтение15 мин
Количество просмотров43K
Желание написать об C++ API у меня возникло давно, и вот наконец выдался спокойный вечер. По роду деятельности я и мои ребята пишем код на C++ для программистов на C++ и Python, общее ядро функционала, который используется во всех продуктах нашей компании. Разумеется это подразумевает, что код должен иметь интуитивно понятный API, с общей логикой как для низкоуровневого C++, так и для высокоуровневого Python, вне зависимости от разночтения в языках некоторых базовых конструкций. Об объединении C++ и Python я много писал ранее в статьях про Boost.Python, сейчас я очень благодарен архитектуре и логике языка Python, я многое понял и перенял в С++ именно благодаря опыту построения общего API для этих двух таких разных языков, но сейчас речь пойдёт только и исключительно о C++, про API и про то, что такой зверский гибкий язык позволяет сделать с интерфейсом вашей замечательной библиотеки, если не учитывать ряд важных особенностей языка C++.
Читать дальше →

Evernote API: гео-помощник ГдеСейчас

Время на прочтение4 мин
Количество просмотров4.3K
imageГдеСейчас — это гео-ассистент на телефоне, приложение для личного обмена местоположением с друзьями и близкими в один клик, которому можно довериться, не тревожась за свою приватность. Денис Магда, разработчик и сооснователь приложения рассказал об опыте интеграции с Evernote.

Приложение: ГдеСейчас/GeoMe
Разработчик: gdeseychas.ru
Местонахождение: Санкт-Петербург
Платформы: iPhoneAndroidChromePebble
Категория: Связь, Социальные сети
Интеграция: Подключить аккаунт Evernote 

Помимо основной функции (узнать кто и где находится) ГдеСейчас — это инструмент для работы с гео-заметками.  В отличие от социальных сервисов, таких как Foursquare и другие,  здесь речь идет не о публичных местах, а о бытовых: домашние и рабочие адреса друзей, места без определенного названия/адреса, которые могут пригодиться в будущем.
Читать дальше →

Gmail API

Время на прочтение2 мин
Количество просмотров57K
Компания Google решила открыть для сторонних приложений доступ к содержимому почтовых ящиков Gmail и представила программные интерфейсы Gmail API. По мнению Google, они удобнее и безопаснее, чем протокол IMAP.

Gmail API дают доступ к отдельным ресурсам, таким как Threads, Messages, Labels, Drafts или History. Например, стороннее приложение может запросить доступ только на отправку писем (но не чтение), или только на чтение (но не отправку), или только на изменение меток для писем и цепочек, или только на поиск конкретных писем и цепочек.
Читать дальше →

Подробное сравнение популярных SMS/Voice сервисов для рассылок и авторизаций

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


Десятки мобильных стартапов встречают своего пользователя с экрана SMS-авторизации. Сегодня мы попытаемся разобраться какой сервис удобнее, выгоднее и надежнее всего использовать для регистрации в мобильных проектах, отправки SMS-уведомлений, рассылок и различных других действий.
Нажмите чтобы узнать о самых выгодных SMS-провайдерах

Новый REST API Яндекс.Диска и Полигон. А также зачем Диску ещё один API и как мы его делали

Время на прочтение4 мин
Количество просмотров54K
Многие знают, что у Диска уже достаточно давно есть API на WebDAV. Он достаточно узко заточен под работу с файловой структурой, а у его реализации на разных платформах часто бывают некритичные, но не очень приятные недостатки. Поэтому в дополнение к WebDAV мы запускаем REST API, который позволит разработчикам делать всё то же и немного больше.

Например, при использовании нового API все приложения, которым просто нужно хранить свои файлы в Диске, смогут получать доступ только к своей папке, лежащей в Диске пользователя в папке «Приложения». В WebDAV API сервису для этого придётся получать у пользователя разрешение на запись/чтение всего Диска, а не только конкретной папки.



В этом посте я хочу рассказывать не о структуре или об операциях, которые умеет выполнять наш API — там всё довольно очевидно — а сразу перейду к интересным вещам: что такое Hypermedia и Machine-readable and Self-describing API, и как мы все это реализовали.
Читать дальше →

Интеграция GoogleDocs с Redmine

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

Введение


Если вы завязаны в разработке, то так или иначе сталкивались с баг-трекерными системами. В наши дни обойтись без них в процессе разработки программного обеспечения не просто трудно, а невозможно. Естественно, и нас это не обошло стороной. В компании мы пользуемся системой Redmine. Тут есть все, что нам необходимо:

— Отслеживание состояния задач
— Группировка задач в трекере
— Внутрипроектное обсуждение при необходимости
— Ведение документации (хоть и возможности весьма ограничены)
— Учет времени сотрудников и видов их деятельности

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

MultiCAD.NET API: Сохранение неграфической информации в .dwg-чертежах

Время на прочтение5 мин
Количество просмотров5.8K
image

Каждый разработчик приложений САПР рано или поздно сталкивается с проблемой хранения в чертеже вспомогательной неграфической информации. Это могут быть атрибуты отдельных графических элементов, атрибуты отдельных листов, или же настройки всего чертежа. В отличие от атрибутов блока, эта информация не видна пользователю и применяется для программной обработки чертежей.

На сегодняшний день существует ряд традиционных способов решения задачи: это добавление XData к элементам чертежа, использование XRecord и создание собственных неграфических объектов.

По сравнению с традиционными, механизм создания и хранения неграфической информации в MultiCAD.NET API гораздо компактней и удобней в использовании. Кроме того, он универсален и может быть одинаково применен для различных типов данных в чертеже: графических элементов, листов или самого чертежа. В качестве дополнительной информации могут использоваться данные различных типов.

Как это работает и как применяется на практике смотрите под катом.
Читать дальше →

Вклад авторов