Pull to refresh
283
0
Денис Потапов @PatapSmile

Обо всём и ни о чём

Send message

Приложение двенадцати факторов — The Twelve-Factor App

Reading time22 min
Views69K
Уважаемые читатели! Представляю вашему вниманию перевод методологии создания веб-приложений The Twelve-Factor App от разработчиков платформы Heroku. Мои комментарии скрыты спойлерами по ходу статьи.

Введение


В наши дни программное обеспечение обычно распространяется в виде сервисов, называемых веб-приложения (web apps) или software-as-a-service (SaaS). Приложение двенадцати факторов — это методология для создания SaaS-приложений, которые:

  • Используют декларативный формат для описания процесса установки и настройки, что сводит к минимуму затраты времени и ресурсов для новых разработчиков, подключенных к проекту;
  • Имеют соглашение с операционной системой, предполагающее максимальную переносимость между средами выполнения;
  • Подходят для развертывания на современных облачных платформах, устраняя необходимость в серверах и системном администрировании;
  • Сводят к минимуму расхождения между средой разработки и средой выполнения, что позволяет использовать непрерывное развертывание (continuous deployment) для максимальной гибкости;
  • И могут масштабироваться без существенных изменений в инструментах, архитектуре и практике разработки.

Методология двенадцати факторов может быть применена для приложений, написанных на любом языке программирования, и которые используют любые комбинации сторонних служб (backing services) (базы данных, очереди сообщений, кэш-памяти, и т.д.).
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments5

Открытая бухгалтерия в Министерстве образования и науки Украины

Reading time2 min
Views30K
В 2009 Тим Бернерс-Ли в своем выступлении на TED говорил об открытых данных и будущем интернета. На 10 минуте он вместе с залом скандирует «Raw data, now!» (сырые данные, сейчас же). Рекомендую всем, кто этого еще не сделал, посмотреть это выступление.



21 февраля 2014 года студенты заняли здание Министерства образование и науки Украины с требованиями перемен. Вместе с политическими требованиями, они выдвинули требования открытой бухгалтерии. Уже 24 марта новый министр подписал указ №85-а о ежедневной публикации всех бухгалтерских проводок за день на сайте министерства. Само по себе открытие данных не должно было занять время, но оказалось, что в МОН фактически не было учетной системы, и, например, главная книга велась на бумаге.

Сегодня данные доступны на сайте министерства (UPD: спасибо за новую ссылку sad. Дамп можно скачать по ссылке), а под катом короткая инструкция как обрабатывать данные, кабель на миллион гривен (около 50 тыс. долларов), и почему пока открытая бухгалтерия не так эффективна.
Читать дальше →
Total votes 84: ↑66 and ↓18+48
Comments47

Автоплатеж изнутри: часть 1. Как работают рекурренты

Reading time2 min
Views15K


Привет, Хабрахабр!

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

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

В целом, весь процесс можно разделить на два этапа — регистрация шаблона рекуррентного платежа и повторное списание регулярного платежа. Покажем на примере использования Payler Gate API:
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments7

Электронная цифровая подпись (ЭЦП) документов в 1С за пару кликов с использованием утилиты КРИПТО-ПРО PDF

Reading time7 min
Views92K
На одном из крупных проектов возникла не совсем обычная для 1С задача. Нужно было организовать массовую отправку и подписание документов контрагентов с помощью электронной цифровой подписи. Поиск информации в справочной системе и на 1Сных форумах нужного результата не дал. Пришлось разбираться со средствами криптографии, электронными ключами и сторонними утилитами. Найденное решение оказалось простым и достаточно гибки для повторения в других проектах, поэтому хочу с вами поделиться.
Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments20

Почему научиться программировать так чертовски тяжело?

Reading time14 min
Views424K
Привет, Хабр!

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

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Но сложнее всего объяснить новичку, грубо говоря, во что он ввязывается. Благодаря очень простым, игровым образовательным проектам многие считают, что программирование это очень легко, а наши виртуальные машины, где нужно запускать тесты и компилировать код – это надуманная сложность. Давно хотелось найти такой материал, который бы подготовил новичка к длинному и сложному пути к карьере программиста. И недавно наши коллеги из Viking Code School такой материал написали! А мы его перевели для вас.




Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

Его швыряло туда-сюда как листочек в торнадо. Каждый совет, который он слышал, тащил его то в одну, то в другую сторону, до тех пор пока он не прошел “каждый онлайн-курс по программированию во вселенной”. В конце концов, не смотря на то, что он получил работу разработчика ПО, Квинси:

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

Ох. Звучит знакомо?
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments44

Управление неуправляемым и мониторинг критичного

Reading time13 min
Views13K
В чужой монастырь со своим уставом не ходят. На очередном месте работы в мои задачи входит создание и последующая поддержка документооборота на платформе Alfresco, попутно ведение других систем. Заведение с предписанными правилам, устоявшимися обычаями и порядками. Многих привычных IT вещей в инфраструктуре нет, но всё работает надежно и всех устраивает. Как человек обладающий интеллектом и зачатками воспитания не буду пытаться нарушить чужие традиции и глобально что-либо менять. Учитывая over 500 рабочих мест, некоторые замечу не всегда рядом и критичность создаваемого сервиса для организации, некоторые вещи сделаю на свой лад. К ним относятся мониторинг и оркестрация.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments2

Сappasity 3D Scan – 3D сканирование с использованием Intel RealSense. Опыт разработки

Reading time5 min
Views17K


В 2014 году нами было принято решение запустить софтверный стартап, где мы могли бы использовать наш пятилетний опыт в 3D-технологиях, накопленный при разработке игр. Тематика 3D реконструкции интересовала нас давно, и на протяжении 2013 года мы проводили многочисленные эксперименты с решениями других компаний – так исподволь накапливалось желание создать собственное. Как вы уже, наверное, поняли, наша мечта была успешно воплощена в реальность; хроника этого воплощения – под катом. Там же история наших взаимоотношений с Intel RealSense.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments31

Чтобы распознавать картинки, не нужно распознавать картинки

Reading time18 min
Views236K
Посмотрите на это фото.



Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.

Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?

Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Осторожно, тяжелые гифки
Total votes 263: ↑258 and ↓5+253
Comments104

Простое решение для использования ЭЦП — развитие

Reading time3 min
Views7.6K
imageВ своей предыдущей статье «Простое решение для использования ЭЦП» я описал идею для реализации приложения для использования ЭЦП. С того времени довольно многое изменилось. Самое главное — мы решили перейти к модели без использования промежуточных прокси-серверов и более активно использовать QR-коды. Так-же у нас появился более симпатичный демо-сайт, позволяющий попробовать как работает наше приложение для различных вариантов применения: для подписания петиции, для голосования, для подтверждения своих действий на сайте.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments4

Кросс-компиляция в Go

Reading time9 min
Views104K
Несмотря на то, что кроссплатформенность стала фактически стандартным атрибутом практически всех современных языков и библиотек, создавать по-настоящему кроссплатформенный продукт, всё равно было непросто. Компилируемые языки и сопутствующие библиотеки требовали сложной установки и настройки среды сборки и библиотек, а интерпретируемые — обязывали иметь или деплоить в составе необходимую версию интерпретатора. Есть немало проектов, пытающихся сделать этот процесс чуть более простым, но зачастую единственным решением оставалось устанавливать отдельный сервер и компилировать нативно.

В Go кросс-платформенность вышла на тот уровень, когда впервые можно смело отказаться от compile farms, специально настроенных dev-сред, виртуальных машин для сборки или chroot/docker-dev решений. И это ещё один серьезный game-changer, подробнее о котором я и хочу рассказать и показать на примерах
Поехали.


Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments13

Делить на ноль — это норма. Часть 2

Reading time18 min
Views75K
Часть 1. Вобще-то уже все поделили до нас!
Часть 2. Истина где-то рядом

В прошлой части мы расширяли алгебру и смогли делить на ноль арифметически. В качестве бонуса, способ оказался не единственным. Однако, все эти алгебры не дали ответа на вопрос: “Что там внутри или почему нам это не показывают?”

Пока древние вязали узелки, такой вопрос возникнуть не мог. Сейчас, куда не глянь, “бла-бла, для а≠0”. Значит ответ затаился где-то между узелками и настоящим. В математике все строго и последовательно, а значит и ответ не мог потеряться.

Читать дальше →
Total votes 83: ↑77 and ↓6+71
Comments59

Национальный план Германии по реализации Хартии открытых данных G8

Reading time2 min
Views3.9K


Буквально несколько дней назад Министр Внутренних дел Германии представил документ 'The Federal Government's National Action Plan to implement the G8 Open Data Charter' (Национальный план действий федерального правительства по реализации хартии открытых данных G8).

Эта хартия была принята на саммите G8 в Ирландии в июне 2013 года и основывается на следующих принципах:
  1. государственные данные публикуются как открытые по умолчанию, в то же время, с условием что приватность защищена;
  2. выпуск качественных, своевременных и хорошо описанных открытых данных
  3. выпуск столько данных в стольки форматах сколько только возможно чтобы сделать данные максимально удобными для повторного использования;
  4. предоставление экспертизы и прозрачности о сборе данных, стандартах и процессах публикации, через улучшение управления;
  5. консультации с пользователями и публикация данных в целях развития и стимулирования инноваций;


По этому плану действий Германское федеральное правительство берет на себя обязательства:
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Skyforge: технологии рендеринга

Reading time16 min
Views103K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Total votes 139: ↑132 and ↓7+125
Comments51

Письмо Дейкстры: почему обучение программированию нужно начинать с функционального языка

Reading time4 min
Views102K


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

Мы в Хекслете недавно запустили новую версию, ключевой особенностью которой стали практические упражнения по программированию в браузере. В связи с этим мы стали получать еще больше писем от начинающих программистов с вопросами вроде «с чего начать». С одной стороны, они хотят выложить бета-версию приложения в app store через неделю. С другой стороны, мы понимаем, что за такой короткий срок, наверное, можно научиться кодить приложения, но нельзя научиться программировать. И сложно решить, что лучше: как можно быстрее научить созданию простых приложений без реального понимания программирования, алгоритмов и их вычислительной сложности, а потом начать знакомство с этими важными темами, или начать «с начала», и органично придти к созданию приложений и продуктов после освоения фундамента.

В 2001 году, Эдсгер Дейкстра написал письмо экономическому совету университета Техаса. В нем знаменитый ученый призывает членов совета задуматься о смене языка программирования для вводного курса. К сожалению, язык был заменен на Java. Примерно в то же время MIT сменили язык курса «Структура и интерпретация компьютерных программ» с функционального Scheme (диалекта LISP) на Python.

Сегодня мы публикуем перевод этого письма.

Членам Экономического Совета


Я пишу вам по поводу слуха о замене языка во вводном курсе по программированию с функционального языка Haskell на императивный язык Java. Я считаю, что Совет должен взять на себя ответственность, чтобы решение не было принято на неправильном уровне.
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments309

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4a из 6

Reading time7 min
Views85K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Построение перспективного искажения


Четвёртая статья будет разбита на две, первая часть говорит про построение перспективного искажения, вторая про то, как двигать камеру и что из этого следует. Задача на сегодня — научиться генерировать вот такие картинки:



Читать дальше →
Total votes 92: ↑90 and ↓2+88
Comments48

Spring MVC 3, Аннотации Hibernate, MySQL. Туториал по интеграции

Reading time19 min
Views124K
Не так давно я начал изучать фреймворк Spring и понял, что количество материала на русском языке ограниченно буквально парой стоящих статей. По быстрому пробежав, я захотел сделать что-то более интересное, но с наскоку взять не удалось. Пришлось погуглить по поводу нескольких вопросов касательно взаимодействия Spring и Hibernate. Неожиданно я наткнулся на блог достаточно интересного разработчика Mark Serrano aka krams. Теперь вместе с вами я хотел бы начать цикл статей-переводов, а так же свое обучение в мире Spring.
Spring — Hibernate: ассоциация один ко многим
Приступим…
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments11

Собираем плохие данные — 2. 1.5 года спустя, про то как не надо публиковать открытые данные

Reading time3 min
Views12K
Не секрет, что российские органы власти в последнее время декларируют высокую степень открытости, публикуют данные и некоторые из них даже бывают полезными, но так было не всегда и далеко не везде.

Полтора года назад я приводил массу примеров неверного толкования открытых данных. В заметке «Собираем плохие данные» есть несколько примеров, когда за машиночитаемые открытые данные выдавали разделы на сайтах или PDF документы.

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

Надо ли делать полноценное обследование властей на предмет качества открытости данных — вопрос открытый. Рано или поздно это потребуется сделать даже при том, что займёт много времени.
Но самыми выдающимися примерами можно ознакомится сейчас. Ну и конечно — рейтинги фуфло, антирейтинги рулят. Худших надо знать в лицо.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments22

Делить на ноль — это норма. Часть 1

Reading time9 min
Views219K
Часть 1. Вобще-то уже все поделили до нас!
Часть 2. Истина где-то рядом

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


Читать дальше →
Total votes 106: ↑98 and ↓8+90
Comments102

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time7 min
Views399K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Total votes 198: ↑196 and ↓2+194
Comments120

Стартапы вдохновленные сексом: плюсы, минусы, подводные камни

Reading time4 min
Views103K
Когда стартап сосредоточен на сексе, он встречает массу препятствий на пути от финансирования до рекламы. Вивьен Зянг рассказывает, как ориентированные на секс стартапы ищут пути чтобы оплатить счета без ущерба для своей миссии.

От переводчика: Статья рассказывает о трудностях со стартапами только для взрослых на западе, и надо помнить, что в постсоветских реалиях большинство из описанных стартапов попадают под действие статей 242 УК РФ (до шести лет) или 301 УК Украины (до семи лет).

Текст без картинок
Total votes 78: ↑54 and ↓24+30
Comments69

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity