Как стать автором
Обновить
-18
0
Дмитрий С. @tree

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

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

Проектирование RESTful API с помощью Python и Flask

Время на прочтение15 мин
Количество просмотров282K
В последние годы REST (REpresentational State Transfer) стала стандартной архитектурой при дизайне веб-сервисов и веб-API.

В этой статье я покажу вам как просто создавать RESTful веб-сервисы используя Python и микрофреймворк Flask.

Что такое REST?


Характеристика системы REST определяется шестью правилами дизайна:

  • Клиент-Сервер: Должно быть разделение между сервером, который предлагает сервис и клиентом, который использует ее.
  • Stateless: Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для выполнения запроса. Другими словами, сервер не обязан сохранять информацию о состоянии клиента.
  • Кэширование: В каждом запросе клиента должно явно содержаться указание о возможности кэширования ответа и получения ответа из существующего кэша.
  • Уровневая система: Клиент может взаимодействовать не напрямую с сервером, а с произвольным количеством промежуточных узлов. При этом клиент может не знать о существовании промежуточных узлов, за исключением случаев передачи конфиденциальной информации.
  • Унификация: Унифицированный программный интерфейс сервера.
  • Код по запросу: Сервера могут поставлять исполняемый код или скрипты для выполнения их на стороне клиентов.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии32

Еще один шаг к идеальным закладкам

Время на прочтение2 мин
Количество просмотров58K
Привет всем! На хабре я уже более 5 лет и успел заметить множество стартапов которые были анонсированы здесь и успели дорасти до серьезных коммерческих проектов.
Мне всегда хотелось повторить их путь и следствием этого стал запуск Raindrop.io и публикации анонса.

image

Ваш последовавший отклик и интерес очень вдохновили меня, а замечания и идеи определили дальнейший путь развития проекта.
О том каким он стал и чего добился я хочу рассказать в этом посте.
Читать дальше →
Всего голосов 75: ↑68 и ↓7+61
Комментарии90

Несколько интересностей и полезностей для веб-разработчика #35

Время на прочтение7 мин
Количество просмотров51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Front-end Job Interview Questions


Репозиторий с самыми актуальными вопросами на собеседовании на позицию фронтенд разработчика. Проект от команды знаменитого HTML5 Boilerplate и набрал уже более 7500 звезд на GitHub.

ShareDrop



В «Америках» почему-то часто критикуют веб-стандарты и работу консорциума W3C в целом. Но не знаю как вас, а меня современные возможности очень даже радуют, особенно когда я вижу их реализацию. Встречайте P2P сервис для передачи файлов, основанный на технологии WebRTC и Firebase. Это веб аналог яблочного AirDrop. Лично я открыл оффлайновый учебник «Постройка.ру» по HTML лет 7-8 назад и по сравнению с тем, что мы видим сейчас — это небо и земля. Даже невзирая на объем и некоторую путаницу в спецификациях.

Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии15

Шпаргалка по управлению сервисами CentOS 7 с systemd

Время на прочтение7 мин
Количество просмотров340K
Systemd – менеджер системы и сервисов в операционной системе Linux. При разработке eго стремились спроектировать обратно совместимым со скриптами инициализации SysV init и предоставить полезные функции, такие, как параллельный запуск системных сервисов во время загрузки, активацию демонов по требованию, поддержку снепшотов состояния системы и логику управления сервисами, основанную на зависимостях. В CentOS 7 systemd заменяет Upstart как систему инициализации по умолчанию.

В этой статье мы рассмотрим процесс управления сервисами в systemd для пользователя CentOS 7. Эти знания будут полезны и в других дистрибутивах, ведь systemd уже давно используется в Fedora и планируется в Ubuntu 14.10 и Debian 8. Хорошо это или нет — оставим за кадром.

CentOS 7 Systemd Infobox

В процессе чтения статьи вы можете попробовать systemd на классических VPS и облачных VPS от Infobox. Мы стремимся своевременно добавлять поддержку современных ОС, чтобы вы могли использовать последние технологии для более эффективной работы. Сама идея написания статьи родилась после очередного вопроса пользователей об использовании сервисов в CentOS 7.
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии10

Видео докладов с DevOps Meetup про Docker

Время на прочтение1 мин
Количество просмотров16K
Недавно в офисе Badoo проходил DevOps Meetup про Docker и контейнерную виртуализацию. Делимся с вами видео докладов.

1. «Docker в Badoo: от восторгов к внедрению».
Антон banuchka Турецкий, Раудсепп Илья, Badoo.



Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии5

Псевдопрактический пример замыканий и декораторов

Время на прочтение4 мин
Количество просмотров17K
Когда я только начинал изучать Python, большое впечатление на меня произвели route-декораторы в известном фреймворке flask. Конечно, я догадывался, как они могли быть реализованы, но как всегда желание писать (а не читать) превзошло необходимость взглянуть на исходный код flask, и мне пришлось выдумать то, что могло бы выглядеть так же лапидарно, как вышеупомянутые декораторы из flask'а. Упражнение на тему замыканий, декораторов и области видимости в Python могло бы выглядеть так:

def do_something(p):
    return p

@implements(do_something, lambda: not p % 2)
def do_mod2_something(p):
    return p / 2

@implements(do_something, lambda: not p % 3)
def do_mod3_something(p):
    return p / 3

do_something(10)  # returns 5
do_something(9)   # returns 3
do_something(11)  # returns 11


Как реализовать декоратор @implements? Может ли подобная реализация использоваться где-то в реальных проектах — вопрос, который мы редко принимаем во внимание, выдумывая себе упражнения для понимания того, как работают те или иные программы. Мне показалось, что это выглядит как некое замещение (override) функции, имеющее место в других языках программирования.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии1

Allure — фреймворк от Яндекса для создания простых и понятных отчётов автотестов [для любого языка]

Время на прочтение4 мин
Количество просмотров155K
Прежде чем начать рассказ про наш очередной opensource-инструмент, давайте я поясню, для чего мы его сделали. Я довольно много общаюсь с коллегами-тестировщиками и разработчиками из разных компаний. И, по моему опыту, автоматизация тестирования ─ один из самых непрозрачных процессов в цикле разработки ПО. Посмотрим на типичный процесс разработки функциональных автотестов: ручные тестировщики пишут тест-кейсы, которые нужно автоматизировать; автоматизаторы что-то делают, дают кнопку для запуска; тесты падают, автоматизаторы разгребают проблемы.



Я вижу здесь сразу несколько проблем: ручные тестировщики не знают, насколько автотесты соответствуют написанным тест-кейсам; ручные тестировщики не знают, что именно покрывается автотестами; автоматизаторы тратят время на разбор отчётов. Как ни странно, но все три проблемы вытекают из одной: результаты выполнения тестов понятны только автоматизаторам — тем, кто эти тесты писал. Именно это я и называю непрозрачностью.

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

Именно поэтому мы разработали Allure — инструмент, позволяющий внести прозрачность в процесс создания и выполнения функциональных тестов. Красивые и понятные отчёты Allure помогают команде решить перечисленные выше проблемы и начать наконец разговаривать на одном языке. Инструмент имеет модульную структуру, позволяющую легко интегрировать его с уже используемыми инструментами автоматизации тестирования.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии19

Codeship.io: бесплатный CI сервер для приватного репозитория Github/Bitbucket

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

Сразу заинтригую: в результате мы получим связку бесплатного приватного git репозитория на Bitbucket и бесплатный* Continious Integration сервер (SAAS), который будет собирать проект и прогонять все тесты после каждого пуша.
* — бесплатная подписка дает возможность тестировать 5 приватных репозиториев и максимум 100 билдов в месяц.

Мне этого для личного проекта достаточно.

Приведу пример для PHP, проект на Symfony2, но данный сервис поддерживает ещё и Ruby, Node.js, Python.

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии19

ah — лучше, чем history

Время на прочтение3 мин
Количество просмотров30K
Так получается, что я провожу в консоли (терминале) достаточно времени, порой даже больше, чем хотелось бы. Порой даже исполняю там какие-то команды и внимательно изучаю их вывод. Часто случается, что к выводу той или иной команды приходится возвращаться, а он постоянно теряется: то терминалы захлопываются, то в tmux окно закрываешь, то выводы прочих команд уже давным-давно забили и похоронили ту самую полезную строчку.

Для того, чтобы сохранить вывод какой-либо утилиты я, как и многие, пользовался tee. Это работало, но постоянная суета среди бесконечных error.log, out.log, output.log, err.log log.log, lll.txt и тп если не сводила с ума, то безумно раздражала; вместо того, чтобы вести какой-то порядок, постоянно подмывало создать Новую Папку (1), где и похоронить эти самые логи, периодически бэкапя могильничек: порядок предполагал какую-то систематизацию, а в разгаре работы вспоминать как назвать свой файл крайне не хотелось.

Тогда я написал ah, крохотную утилитку, которая сильно-сильно улучшила мою жизнь.
Читать дальше →
Всего голосов 97: ↑93 и ↓4+89
Комментарии21

В офисах открытого типа сотрудники чаще болеют и хуже работают

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


По статистике Международной ассоциации менеджмента, 70% американцев работают в офисах открытого типа (open plan). В последняя время открытое рабочее пространство стало чрезвычайно модным из-за дешевизны, простоты и удобства управления персоналом. Но как открытый офис сказывается на производительности труда и комфорте работы?
Читать дальше →
Всего голосов 99: ↑86 и ↓13+73
Комментарии699

MeCam — летающая камера за 49$

Время на прочтение2 мин
Количество просмотров188K
Новый миниатюрный квадрокоптер MeCam, недавно представленный компанией Always Innovating, способен поменять наши представления о способах видео- и фотосъёмки. MeCam представляет собой летающую камеру на базе Linux, которая управляется голосом и передаёт фото и видео по Wi-Fi либо Bluetooth на iOS либо Android-устройство с возможностью последующей публикации в Youtube, Google+, Facebook либо Twitter. Также, как альтернатива управлению голосом, поддерживается функция «Follow Me», при которой квадрокоптер неотступно следует за пользователем, ориентируясь на сигнал его смартфона либо планшета. В устройство встроено 14 датчиков, позволяющие самостоятельно преодолевать препятствия, имеется система стабилизации для получения плавного изображения и возможность панорамной съёмки.
Читать дальше →
Всего голосов 110: ↑109 и ↓1+108
Комментарии115

Pi Bow — самый веселый корпус для Raspberry Pi

Время на прочтение2 мин
Количество просмотров133K
Многие слышали про Rapberry Pi. Это мини-компьютер, в основном для образовательных целей. Архитектура полностью открыта, основана на ARM, работает на Линуксе, очень активная поддержка фанатов, разрабатывающих свои дистрибутивы Линукса и различные аппаратные расширения. Цена удовольствия — 35 британских фунтов или около 1800 рублей.

На Хабре было много постов про RPi, поэтому сейчас немного не об этом. Увы, плата RPi имеет одну конструктивную особенность — у нее нет дырок под винты, поэтому ее крепеж в какой-либо корпус становится небольшой проблемой (авторы обещали исправить это в следующей модели). Конечно, пытливые умы фанатов давно придумали способы крепежа, и сейчас речь как раз об одном из таких корпусов. Этот корпус весьма необычен в конструкции, и вы скоро увидите почему.

(Под катом мало текста, зато много картинок).
Читать дальше →
Всего голосов 101: ↑92 и ↓9+83
Комментарии70

Гарри Поттер и методы рационального мышления

Время на прочтение2 мин
Количество просмотров44K
Фанфики по мотивам популярной детской сказочки? На моем хабре???


Не спешите.

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

А между тем, идея — гениальна.

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

Но если взять не свой, а чужой мир? Желательно, конечно, что бы этот мир был уже широко известен публике. Хорошо, если этот мир — фантастичен (в фантастике всегда найдутся логические дыры мироустройства разного калибра). Превосходно, если этот мир будет допускать возможность попадания в него ученого из нашего мира.

Так что позвольте вам представить...
Всего голосов 80: ↑62 и ↓18+44
Комментарии23

CX-01 — еще один мини-ПК

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


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

Читать дальше →
Всего голосов 34: ↑26 и ↓8+18
Комментарии56

Оптимизация OSX для работы с SSD

Время на прочтение3 мин
Количество просмотров114K
Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
image
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии80

Продолжаем работать на oDesk

Время на прочтение9 мин
Количество просмотров14K
Пару месяцев назад я написал статью о том, как начинать работать на oDesk людям привычным к обычным фрилансерским биржам типа free-lance.ru, weblancer, getafreelancer и т.д. Настало время для следующей статьи с советами для людей которые уже стартовали и хотят раскручиваться на этой бирже.

Все изложенное в статье — мое мнение. Можете соглашаться или не соглашаться, но для меня эти правила работают.

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

Электронная подпись физического лица (часть 1)

Время на прочтение6 мин
Количество просмотров58K
Я расскажу о Федеральном законе от 6 апреля 2011 г. N63-ФЗ «Об электронной подписи»: что он, зачем он, а главное, как обывателю его использовать. Рассмотрю проблемы, с которыми я столкнулся, и их решения. Этот пост направлен больше в сторону социума, поэтому для технарей будет присутствовать некая избыточная информация.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии30

Обновление SkyDrive и как подключить SkyDrive в виде сетевого ресурса

Время на прочтение2 мин
Количество просмотров41K
Недавно веб-интерфейс бесплатного облачного хранилища файлов Microsoft SkyDrive получил обновление. Этот ресурс по-прежнему предлагает 25 гигабайт бесплатного хранилища, однако в ходе обновления размер отдельного загружаемого файла теперь был увеличен с 50 мегабайт до 100 мегабайт.

Веб-интерфейс теперь использует новое представление для отображения папок и просмотра галереи изображений.

image image 

Кроме того заявлены следующие изменения:
  • закрепление сайта на панели задач через Internet Explorer 9
  • один и тот же интерфейс для всех типов файлов
  • новая панель информации о файле
  • новый просмотрщик фотографий
  • увеличена скорость работы ресурса
  • 100 мб лимит файлов
  • больше нет рекламы, убран баннер.
Но самое интересно, что теперь есть способ подключения вашего хранилища SkyDrive в качестве сетевого диска с полной поддержкой копирования, вставки, удаления, предпросмотра файлов. Пока для записи в хранилище поддерживаются офисные файлы. Остальные файлы можно загрузить через веб-интерфейс. Доступ к загруженным через веб-интерфейс файлам доступен для всех типов. Для того, чтобы подключить SkyDrive в качестве сетевого диска проделайте следующие шаги:
Читать дальше →
Всего голосов 80: ↑71 и ↓9+62
Комментарии59

Tips and Tricks по программированию на Android

Время на прочтение5 мин
Количество просмотров7.2K
Tips and Tricks
Летом друг подкинул пару заказов по разработке для Android. Первое это streaming проигрыватель видео для одного французского телевидения, второе — простенькая игрушка.
Во время разработки (мой первый опыт разработки на Android и на Java), я уяснил несколько правил, которые нужно соблюдать для корректной и устойчивой работы программ, которыми хочу поделится…
Читать дальше →
Всего голосов 91: ↑75 и ↓16+59
Комментарии44

Информация

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