Обновить
38.84

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

О создании API

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

Используем почтовые индексы в своём приложении во благо

Время на прочтение6 мин
Количество просмотров57K
Я думаю, что на многих сайтах пользователя спросят его физический адрес. Для доставки ли, для отсылки бумажного спама уведомлений ли. И, в общем-то — это мелочь. Вбил индекс, Москва, область, район, село, улица, дом, квартира. Казалось бы, что тут упрощать, каждый вроде помнит свой адрес, трудно ли его вбить? Но дьявол, как всегда, кроется в мелочах: пользователь опечатывается в адресе, посылка уходит не туда, лучи «добра» идут вам в обратную связь и вообще жизнь плохеет.

Приглядитесь к первой части адреса — индексу. В этом наборе из шести цифр уже есть область, район и город/село. Их можно подставить автоматом. Этим мы убъём сразу двух зайцев:
  • Убережём пользователя от ошибок (при вводе неверного индекса он сразу заметит, что город-то не его), что, в случае доставки письма (а то и посылки), может здорово её ускорить (пока её по неверному индексу зашлют, да пока разберутся, что не туда заслали, да отправят туда — пользователь вам всю плешь проест)
  • пользователю будет приятно, что о нём заботятся :-)

Дело за малым: нам нужна база почтовых индексов.

И она есть! Всамделишняя, электронная и, главное, официальная база индексов от Почты России.
Встречайте!

Внешний сервис голосования aka like-dislike feature

Время на прочтение3 мин
Количество просмотров6.2K
Добрый день, Хабрасообщество!

В процессе реализации одного моего проекта (с блекджеком и всеми остальными social прелестями), пришлось реализовывать функциональность голосования (like, like/dislike, rating, etc) пользователей за некоторые сущности предметной области проекта.

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

Поискав в Google готовые решения, не удалось найти ничего подходящего. В основном решения (плагины для различных web-фреймворков) сводятся к добавлению дополнительных полей в существующие таблицы (или объекты коллекций в случае MongoDB), в которые пишется количество лайков/дислайков, а также кто из пользователей уже проголосовал. Такие решения имеют значительные недостатки, так как с одной стороны не обладают достаточной гибкостью, позволяющей легко модифицировать алгоритмы голосования (что очень важно для нового проекта в процессе поиска правильной модели), а с другой стороны требуют модификации существующего кода и, что еще хуже, уровня хранения данных, для добавления функциональности голосования.
Читать дальше →

Хипстерский подход или «что делать когда писать пресс-релизы скучно»

Время на прочтение3 мин
Количество просмотров4.4K
Пресс-релиз — это такая штука, которую мало кто читает, но которая необходима для хроник. Для Backendless-а, который трудится на ваше благо воплощает в жизнь девиз «ноль строк серверного кода в приложении», приближается Судный День дата коммерческого релиза. Это означает, что понадобится материал для прессы и этим не самым вдохновляющим делом пора заняться.



Но так как сегодня пятница, а энтузиазма по данному вопросу маловато, вашему вниманию предлагается пародия на традиционный пресс-релиз.
Поднять настроение

Импорт координат из текстового файла в чертёж nanoCAD на MultiCAD .NET API

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


В предыдущей статье мы писали о том, как импортировать точки из внешнего текстового файла в .dwg чертеж при помощи классического .NET API. В данной статье мы рассмотрим особенности решения этой же задачи на кросс-САПР-платформенном MultiCAD .NET API и продемонстрируем, как построенное приложение может быть запущено в nanoCAD и в AutoCAD без изменения настроек проекта и перекомпиляции.
Читать дальше →

Импорт координат из текстового файла в чертёж nanoCAD на классическом .NET API

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


Одним из наиболее популярных вопросов по программированию под nanoCAD является «Как мне импортировать точки из текстового файла?». Задача это несложная, но профессиональный проектировщик не обязан быть профессиональным программистом, поэтому эту статью мы написали в стиле «для начинающих».

Импортировать координаты в чертёж можно на любом из существующих в nanoCAD видов API. Мы решили выбрать .NET и сравнить два близких API: классический .NET API и кросс-САПР-платформенный MultiCAD.NET API. Под катом — первая часть — импорт точек на классическом .NET API.
Читать дальше →

Работа с API Яндекс.Метрика на Python

Время на прочтение2 мин
Количество просмотров15K
Всем любителям Python и Яндекс.Метрики доброго дня!

Некоторые знают, что с некоторых пор я заделался Web-разработчиком, впрочем это громко сказано. Мой сайт с занимательными задачками, кстати, если кому интересно, попасть туда можно вот по этой ссылке, медленно, но верно, катится в топы поисковиков, благо альтернатив не так много. О посещаемости на сайте я узнаю из отчетов уже полюбившейся мне яндекс.метрики. В принципе, там есть большинство из того, что мне нужно. Но каждый раз ходить на из сайт для того, чтобы посмотреть количество визитеров как-то не фонтан. И вот тут я снова, как нельзя кстати, вспомнил, что в общем-то я программист и учу питон. «Ладно», — подумал я — «заодно и в работе с сетью попрактикуюсь». Сказано-сделано. Через протокол oAuth регистрируем приложение и получаем для него отладочный токен (живет он бессрочно и каждый раз запрашивать его не надо. Так что под наши нужды — самое то!). Для всех интересующихся, под катом привожу код библиотеки, которую можно привязать к любому GUI — интерфейсу:
Читать дальше →

ConceptNet 5 — настоящий ИИ не за горами

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

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

Новый API HeadHunter и прекращение поддержки API 1.0

Время на прочтение2 мин
Количество просмотров10K
Некоторые знают, что у нас есть API, программный интерфейс, позволяющий «общаться» с платформой hh.ru мобильным и десктопным приложениям, другим сайтам и просто виджетам, включая тот, что расположен справа от этой статьи на странице нашего блога.

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

Создание пользовательских примитивов в САПР на MultiCAD .NET API

Время на прочтение6 мин
Количество просмотров13K
Одним из главных недостатков традиционного .NET API в .dwg совместимых САПР является невозможность создания пользовательских примитивов (Custom Entities) на .NET. Пользовательские примитивы создаются на С++, для их использования в .NET необходимо создать управляемые обёртки на C++/CLI.

Технология MultiCAD .NET позволяет создавать пользовательские примитивы, не выходя за рамки управляемого кода. Помимо отсутствия промежуточных объектов на C++, в MultiCAD .NET максимально используются стандартные для .NET механизмы, как следствие нет необходимости во многих привычных для САПР программистов операциях: не нужно вручную описывать сериализацию, свойства в инспектор можно вывести без создания COM объекта и т.п.

В качестве демонстрации MultiCAD .NET мы рассмотрим пример приложения CustomObjects, содержащийся в комплекте поставки SDK. Этот пример создает пользовательский примитив, который представляет собой прямоугольную рамку с находящимся внутри текстом:

Sample TextInBox MultiCAD .NET Entity

Чертежи, содержащие наш тестовый примитив, могут быть открыты в любой .dwg совместимой САПР. Для изменения примитива необходимо загрузить сборку, содержащую код примитива, причём во все поддерживаемые САПР платформы загружается одна и та же сборка без перекомпиляции. Технология является родной для nanoCAD, для загрузки модуля в AutoCAD требуется модуль расширения (Object Enabler). Как это работает смотрите под катом.
Читать дальше →

Открыта программа для разработчиков от Thalmic Labs (MYO)

Время на прочтение1 мин
Количество просмотров11K
2-го июля Thalmic Labs разослала уведомление об открытии регистрации в программу для разработчиков. Компания Thalmic Labs известна прежде всего своим браслетом MYO (новость на Хабре), который использует метод электромиографии для регистрации электрической активности мышц руки и передает по Bluetooth в мельчайших подробностях информацию о том, какое движение совершил пользователь. Таким образом, создается носимый интерфейс управления любым устройством, которое поддерживает интеграцию по Bluetooth.
Немного подробностей

В этот особенный день — обновленный API Яндекс.Подписок

Время на прочтение2 мин
Количество просмотров14K
imageКак многие знают, у нас есть прекрасный веб-сервис для чтения RSS/Atom-лент – Яндекс.Подписки. Однако у него был один небольшой недостаток – больше трех лет внешний API сервиса находился в состоянии бета-версии и практически не развивался, при этом внятная документация к нему отсутствовала. Из-за этого написать на его основе собственное приложение было проблематично. Но ситуация сдвинулась с мертвой точки: обновленный API Подписок официально можно считать открытым, а документация к нему стала доступна на странице Яндекс.API.
Читать дальше →

Как использовать Fullscreen API

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

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

Работаем с реляционными данными используя Backend-as-a-Service

Время на прочтение6 мин
Количество просмотров9.5K
Привет хабра-человеки,

Сегодня мы запустим JavaScript приложение, которое выписывает счет-фактуру прямо с сервера используя взаимодействие с АПИ BaaS платформы. Для разработки приложения потребовалось написать 0 строчек кода на стороне сервера, не смотря на то что приложение имеет удаленное (и полноценное) хранилище данных, возможность регистрации пользователя и поддержку логина. Исходный код доступен на гитхабе.



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

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

Сервис Feedly запустил свой back-end для обработки подписок и отказался от плагина

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


Время отключения Google Reader все ближе, многие сервисы решили подсуетится и получить себе пользователей мигрирующих с Reader'a.

Один из таких сервисов — Feedly, сегодня они, как и обещали, запустили свой back-end который полностью независим от Google Reader.
Читать дальше →

Разработка web API

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

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

В тексте попадаются комментарии переводчика, они выделены курсивом.

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше

Feedly открыл API для сторонних RSS-приложений

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


Компания Feedly продолжает готовиться к массовому наплыву пользователей, который случится через 26 дней, когда прекратит работу Google Reader. Как и обещалось, разработан полноценный бэкенд для синхронизации фидов, максимально точная копия Google Reader API. Работа на проектом Normandy проделана в сотрудничестве с разработчиками приложений Reeder, Press, Nextgen Reader, Newsify и gReader. Теперь доступ к Feedly API предоставляется для всех этих приложений бесплатно!
Читать дальше →

OData контроллеры в .NET MVC

Время на прочтение10 мин
Количество просмотров40K
В недавно вышедшем ASP.NET and Web Tools 2012.2 Update заявлена частичная поддержка протокола oData в ASP.NET Web API. Решил сам попробовать, да и с коллегами поделиться. В статье опишу как использовать запросы и CRUD операции по протоколу oData с несколькими связанными объектами модели данных. В качестве front-end клиента использован Kendo UI framework.
Читать дальше →

Failsafe resource allocator over DHT

Время на прочтение6 мин
Количество просмотров2.4K
У нас есть некоторый диапазон чисел от 0 до N, надо написать две функции int alloc() и free(int). Первая выбирает один из свободных идентификаторов из диапазона [0, N), а вторая соответственно — «возвращает» его для повторного использования(полагаем, что число N достаточно мало, что бы идентификаторы могли закончится если их не возвращать, но больше чем число выделенных в каждый конкретный момент времени идентификаторов). При этом на «нижнем уровне» у нас есть только DHT. Нету блокировок, и, кроме того, от алгоритмов требуется отказоустойчивость — если какой-то из узлов кластера «сложится» во время выполнения алгоритма поведение системы должно быть предсказуемо. Если задача интересна, а также интересно узнать почему отказоустойчивый сервис с такой сигнатурой невозможно корректно использовать, и как надо исправить сигнатуру что бы это стало возможно — добро пожаловать под кат.

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

Админка за 10 минут

Время на прочтение4 мин
Количество просмотров145K
Здравствуйте, уважаемое Хабрасообщество!

Я занимаюсь разработкой веб-сайтов. Как правило, это решения под индивидуальные потребности заказчиков. Поэтому я не использую готовые CMS, а предпочитаю складывать кирпичики самостоятельно. Конечно и админскую часть приходиться писать самостоятельно, поскольку она должна выполнять те функции, которые нужны заказчику, но и ничего лишнего не должно быть. И если написать несколько методов для редактирования данных это пол беды, то приходилось ещё и верстать приятный и удобный интерфейс.

Долгое время я использовал Twitter Bootstrap, но он не мог удовлетворить все потребности. Приходилось верстать дополнительные кнопочки и писать скрипты. Но вот однажды, я познакомился с замечательным UI-фреймворком KendoUI от Telerik. Что из этого получилось под катом.

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

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