Построение RESTful API с Martini

Автор: admin от 27-01-2014, 20:02, посмотрело: 1385

Я искал повод испробовать фреймворк Martini с момента его анонса в почтовой рассылке golang-nuts. Martini — это пакет (package) для языка программирования Go, предназначенный для веб-разработки. Он стремительно стартовал, заработав 2000 «звездочек» за несколько недель на GitHub (а впервые Martini был там опубликован около месяца назад) (прим. пер. статья-оригинал была опубликована 27 ноября 2013 года).
Поэтому я решил сделать пример приложения, который бы реализовывал некий (практичный) RESTful API, основанный на лучших практиках. Код, иллюстрирующий эту статью, можно посмотреть на GitHub.

Почему Martini?


В Martini есть много вещей для того, чтобы реализовать мою задумку.
Прежде всего, это очень элегантный API, использующий только тонкий слой абстракции поверх превосходного пакета net/http из стандартной библиотеки, и факт понимания всесущего интерфейса http.Handler (прим. пер.: видимо, автор имеет ввиду, что в стандартной библиотеке вовсю используется именно http.Handler, а Martini ловко маскируется под него).

Другой ключевой особенностью является то, что как только Martini покажется для вас «магическим» (мне не нравится магия), вам абсолютно необходимо будет взглянуть на его исходные тексты. Это ~400 строчек исходных текстов, небольшие числом и хорошо контролируемые (так это было сегодня утром), с одной внешней зависимостью, пакетом inject, таким же «худым», состоящим всего из ~100 строчек исходных текстов.

Категория: Программирование » Веб-разработка

 

Python на колёсах

Автор: admin от 27-01-2014, 19:40, посмотрело: 1848

Инфраструктура системы пакетов для Python долго подвергалась критике как от разработчиков, так и от системных администраторов. Долгое время даже само комьюнити не могло прийти к соглашению, какие именно инструменты использовать в каждом конкретном случае. Уже существуют distutils, setuptools, distribute, distutils2 в качестве базовых механизмов распространения и virtualenv, buildout, easy_install и pip в качестве высокоуровневых инструментов управления всем этим беспорядком.

До setuptools основным форматом распространения были исходные файлы или некоторые бинарные MSI-дистрибутивы для Windows. Под Linux были изначально сломанный bdist_dumb и bdist_rpm, который работал только на системах, основанных на Red Hat. Но даже bdist_rpm работал недостаточно хорошо для того, чтобы люди начали его использовать.

Несколько лет назад PJE попытался исправить эту проблему, предоставив смесь из setuptools и pkg_resources для улучшения distutils и добавления метаданных в Python-пакеты. В дополнение к этому он написал утилиту easy_install для их установки. По причине отсутствия формата распространения, поддерживающего метаданные, был предоставлен формат 'яиц' [egg].

Python eggs – обычные zip-архивы, содержащие python-пакет и необходимые метаданные. Хотя многие люди, вероятно, никогда намеренно не собирали egg'и, их формат метаданных до сих пор жив-здоров. И все разворачивают свои проекты с использованием setuptools.

К сожалению, некоторое время спустя сообщество разделилось, и часть его провозгласила смерть бинарных форматов и 'яиц' в частности. После этого pip, замена easy_install, перестал принимать egg-формат.

Потом прошло еще немного времени, и отказ от бинарных пакетов стал доставлять неудобства. Люди всё больше и больше стали деплоить на облачные сервера, а необходимость перекомпиляции C-шных библиотек на каждой машине не слишком радует. Так как 'яйца' на тот момент были малопонятны (я так полагаю), их переделали в новых PEP-ах, и назвали 'колёсами' [wheels].

Категория: Программирование

 

А что думаете Вы, господа интеллигенты?

Автор: admin от 27-01-2014, 19:10, посмотрело: 745

А что думаете Вы, господа интеллигенты?

Привет, Хабр.
Я живу в Украине, в Харькове.
У нас в стране очень странное положение. Я бы даже сказал страшное. Хочу узнать Ваше мнение по этому поводу.

Категория: Информационная безопасность

 

Гарвардский курс CS50x на EdX, перевод субтитров

Автор: admin от 27-01-2014, 18:10, посмотрело: 1499

Гарвардский курс CS50x на EdX, перевод субтитров

Курс CS50 Introduction to Computer Science снова стартовал на сайте EdX. Напомню, что это курс Гарвардского университета и посвящен он основам программирования. Про этот курс уже писали на Хабре тут и тут. В рамках курса изучаются такие языки, как C, PHP, javascript.

Категория: Программирование

 

Сетевое оборудование и коммутаторы IBM

Автор: admin от 27-01-2014, 17:30, посмотрело: 1058

Добрый день всем читателям!

Сегодня хочу осветить одну темноватую страничку в семействе IBM. А именно – сетевую.
Думаю, не многие знают, что компания IBM производила и производит собственное сетевое оборудование. Именно собственное, а не продажа того же Juniper или иных производителей коммутаторов под собственным названием.
В конце 90-х годов подразделение IBM которое отвечало за решение сетевых вопросов было продано, не менее известной компании CISCO, причем не только технологические разработки так и пул заказчиков. Подробнее тут
Выход на рынок серверных решений Cisco Unified Computing System (UCS) заставил компанию IBM пересмотреть взгляд на партнера, превратившегося в конкурента.

И вот 27 сентября 2010 г. — компания IBM объявила о достижении окончательного соглашения о приобретении BLADE Network Technologies. Эта компания родилась внутри небезызвестной компании Nortel и в феврале 2006 года была выделена в Blade Server Switch Business Unit и была преобразована в частную компанию BLADE Network Technologies, Inc. (BNT), которая занималась производством и продажей коммутаторов. Продукцию этого производителя использовала не только IBM в своих блейд-платформах, но и другие крупные производители блейд систем
Войдя в состав корпорации IBM подразделение стало называться IBM System Networking и выпускать не только коммутаторы, предназначенные для установки в блейд системы, но и в обычно внешнем исполнении.

Категория: Программирование

 

Пишем мониторинг наличия билетов на РЖД

Автор: admin от 27-01-2014, 16:20, посмотрело: 2457

Не раз слышал от своих знакомых, что было бы неплохо увидеть сайт который будет мониторить наличие свободных мест на ржд. Про себя я думал — «да неплохо бы» и благополучно забывал, но пост заставил меня вспомнить навыки копи паста, которыми я владею в совершенстве и обернуть это дело в питонячий код. Сразу оговорюсь что именно про мониторинг будет во второй части, а в этой будет про то: как ходить на РЖД из питона, что это за загадочный sleep про который писали в предыдущем посту и как живется на Google App Engine. Итак приступим:
Пишем мониторинг наличия билетов на РЖД

Категория: Программирование

 

Страсть к программированию. Глава 21. Ежедневное достижение

Автор: admin от 27-01-2014, 15:30, посмотрело: 1005

О переводе

Это перевод 20 главы книги The Passionate Programmer: Creating a Remarkable Career in Software Development. Её автор — Chad Fowler — талантливый Ruby-разработчик, известный докладчик на конференциях, посвящённых Ruby и IT в целом. Бывший саксофонист, а сейчас — CTO 6Wunderkinder.

Автор перевода этой главы — shchemelevev. Краудсорсинговый перевод книги ведётся на github, присоединяйтесь.



Благодаря силе воображения, мы все считаем себя хорошими программистами. Мы уверены в том, что справляемся с задачами настолько быстро, насколько вообще возможно. Кому-то везет (я намеренно говорю о везении) — и такая стратегия действительно работает.

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

Категория: Программирование

 

Результаты конкурса на самый глючный код C++

Автор: admin от 27-01-2014, 15:25, посмотрело: 631

После продолжительного обсуждения объявлены победители конкурса Grand C++ Error Explosion Competition. Награды должны были объявить в двух номинациях. Участники первой соревновались по максимальному количеству ошибок на минимальный объём кода. Вторая номинация — творческая, там важно не количество и размер, а качество и красота глюков.

В итоге, абсолютным победителем назван программист Эд Хэнвей (Ed Hanway), приславший такую программу.

#include ".//.//.//.//jeh.cpp"
#include "jeh.cpp"
`

Категория: Программирование

 

Создание изображений на PHP

Автор: admin от 27-01-2014, 15:20, посмотрело: 1915



Структура видеоурока


  • Какие графики функций будем учится рисовать

  • Базовый код для создания изображения на PHP

  • Основные фунции PHP при работе с изображением (с учетом нашей задачи)

  • Создаем координатную плоскость

  • Рисуем линейный график функции и учимся масштабировать его

  • Проверяем все остальные графики функций


Подробности

Категория: Программирование

 

Взгляд фрилансера на менеджмент: управление проектом и коммуникация с клиентом

Автор: admin от 27-01-2014, 15:05, посмотрело: 704

Все началось с этого поста и продолжилось вот этим. Их краткое содержание:

  • признание существования проблем в процессе общения клиента и дизайнера, а также некоторые предложения по их профилактике и решению;

  • последовательное освещение основных этапов работы над дизайном сайта (нетипичным дизайном типичного сайта) с точки зрения рекламщика.



  • Таким образом получается трехсторонний конфликт интересов:

    • дизайнер хочет красивенько;

    • клиенту важно реализовать свое видение, передать свои ценности;

    • маркетологам нужны продажи.



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

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

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

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

    Категория: Программирование » Веб-разработка

     
    Назад Вперед