Как стать автором
Обновить
35
0
Вячеслав Дубинин @bodhisattva

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

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

JSON-RPC? Возьмите хитрый REST

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


Уверен, что заголовок вызвал здоровую реакцию — “ну опять началось…” Но позвольте завладеть вашим вниманием на 5-10 минут, и я постараюсь не обмануть ожидания.


Структура статьи будет такова: берется стереотипное утверждение и раскрывается “природа” возникновения этого стереотипа. Надеюсь, это позволит взглянуть на выбор парадигмы обмена данными в ваших проектах под новым углом.


Для того, чтобы была ясность в том, что такое RPC, предлагаю рассматривать стандарт JSON-RPC 2.0. C REST ясности нет. И не должно быть. Все, что нужно знать о REST — он неотличим от HTTP.

Читать дальше →
Всего голосов 52: ↑41 и ↓11+30
Комментарии118

Эксперимент Microsoft по сокращению рабочей недели до 4 дней привёл к повышению продуктивности на 40%

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


Япония считается одной из худших стран в плане баланса между трудом и отдыхом. По уровню удовлетворенности людей своей работой, если верить опросам, у неё худшие результаты в мире (6.1 балла). У России, для сравнения, 6.8, в США – 7.7, даже у Китая 7.1. Это огромная и широко известная проблема. От сотрудника ожидают, что он будет трудиться, пока его босс остается в офисе, а совещания часто проводятся уже после окончания рабочего времени. Даже после работы ожидается, что сотрудник пойдет в кафе со своими коллегами, где пройдет небольшая сессия тимбилдинга за пивом или сакэ.


Но даже в Японии некоторые компании идут в другую сторону. Они снижают нагрузку на сотрудников, проверяя, какой это даст результат. Три месяца назад такой тест провела Microsoft Japan, японское подразделение «Майкрософт». В рамках своего проекта Work-Life Choice Challenge 2019 в течение одного месяца в августе компания ввела четырехдневную рабочую неделю для 2300 своих сотрудников. К стандартным выходным добавили пятницу.

Читать дальше →
Всего голосов 110: ↑106 и ↓4+102
Комментарии350

Как работать с Postgres в Go: практики, особенности, нюансы

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


Неожиданное поведение приложения в отношении работы с базой приводит к войне между DBA и разработчиками: DBA кричат: «Ваше приложение роняет базу», разработчики — «Но ведь до этого всё работало!». Хуже всего, что DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Было бы неплохо такой ситуации избежать.


Надо понимать, часто недостаточно полистать go-database-sql.org. Лучше вооружиться чужим опытом. Еще лучше, если это будет опыт, полученный кровью и потерянными деньгами.

Всего голосов 76: ↑73 и ↓3+70
Комментарии29

Хранение метрик: как мы перешли с Graphite+Whisper на Graphite+ClickHouse

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

Всем привет! В своей прошлой статье я писал об организации модульной системы мониторинга для микросервисной архитектуры. Ничего не стоит на месте, наш проект постоянно растёт, и количество хранимых метрик — тоже. Как мы организовали переход с Graphite+Whisper на Graphite+ClickHouse в условиях высоких нагрузок, об ожиданиях от него и результатах миграции читайте под катом.


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

Закон о самозанятых. Информация к размышлению

Время на прочтение9 мин
Количество просмотров54K
Уже давно на Хабре в обсуждениях упоминают новый закон о самозанятых. Информации пока мало, но всё-таки решила написать на основе той информации, которая есть — Закон, заключения профильных комитетов, ответы на сайте ФНС.

К IT услугам закон применяется, особенностей для IT нет.

Пакет законов по введению нового налога для самозанятых граждан подписан и вступает в силу с 1 января 2019 года. Появился новый спецрежим и новый налог, Федеральный закон от 27.11.2018 № 422-ФЗ «О проведении эксперимента по установлению специального налогового режима „Налог на профессиональный доход“ в городе федерального значения Москве, в Московской и Калужской областях, а также в Республике Татарстан (Татарстан)»

Остался месяц до вступления в силу закона, есть время немного разобраться.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии232

Как авиакатастрофа может улучшить разбор факапов в ИТ

Время на прочтение6 мин
Количество просмотров28K
Вечером 16 августа 1987 года из аэропорта Детройта вылетел рейс 255 компании Northwest Airlines. Он разбился спустя минуту, и в катастрофе погибли 156 человек. Вроде бы очевидная ошибка пилотов привела к исследованиям с участием NASA, изменениям конструкции самолетов и полетных процедур. А еще эта история имеет отношение к управлению качеством, управлению проектами и к вопросу вины и наказания не только сборщиков потерпевшего аварию «Союза МС-10», но и людей, совершивших ошибки на вашей работе.


Фото с места аварии из Бюро архивов авиационных инцидентов
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии115

Философия информации, часть 1-я

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

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

Заранее извиняюсь за то, что будет реально много букв. Тема чрезвычайно сложная, многоаспектная и на редкость запущенная. Рад был бы вместить всё в одну небольшую статью, но тогда неизбежно получится халтура с зияющими логическими дырами, замыленными вопросами и обрубленными сюжетными линиями. Поэтому предлагаю уважаемой публике немножко запастись терпением, устроиться поудобнее и получить удовольствие от спокойного вдумчивого погружения в вопросы, всю дорогу относившиеся к «этого никто не знает».

Читать дальше →
Всего голосов 15: ↑9 и ↓6+3
Комментарии85

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Типичные ошибки при защите сайтов от CSRF-атак

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


В настоящее время в сфере обеспечения безопасности веб-сайтов и приложений возникла очень интересная ситуация: с одной стороны, некоторые разработчики уделяют особое внимание безопасности, с другой, они напрочь забывают о некоторых видах атак и не считают ошибки, позволяющие выполнить данные атаки, уязвимостями. Например, к такой категории можно отнести CSRF (Сross Site Request Forgery). Эта атака позволяет производить различные действия на уязвимом сайте от имени авторизованного пользователя. Если вы не слышали о таком, то я рекомендую прочитать соответствующую статью в Википедии, чтобы иметь общее представление об этом виде атак. Основная часть статьи предназначена тем, кто обеспокоен правильной защитой своих сайтов от CSRF.
Читать дальше →
Всего голосов 49: ↑40 и ↓9+31
Комментарии93

Музыкальная теория для гиков

Время на прочтение17 мин
Количество просмотров122K
imageКто-то считает музыку уделом избранных талантов, кто-то — набором физических закономерностей. Автор материала делает попытку объяснить знакомые каждому музыкальные термины, такие как тон, интервал, амплитуда, нота, октава, партитура, аккорд и так далее с помощью расчетов и технических обоснований. Ниже перевод оригинального текста.

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

Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
Читать дальше →
Всего голосов 107: ↑104 и ↓3+101
Комментарии100

Платформа CUBA выходит на рынок Свободного ПО

Время на прочтение3 мин
Количество просмотров10K
Спустя два года присутствия на российском и года на мировом рынках платформа CUBA присоединяется к кругу свободно распространяемого программного обеспечения и переходит на лицензию Apache 2.0. Таким образом, широкий круг разработчиков Java, ориентирующийся на открытые технологии, получит возможность разрабатывать и распространять свои CUBA приложения абсолютно бесплатно, а также изменять и развивать платформу самостоятельно!

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



Добро пожаловать под кат, чтобы узнать, как и почему платформа сделала разворот в сторону СПО.
Всего голосов 18: ↑14 и ↓4+10
Комментарии13

С-вызовы в Go: принцип работы и производительность

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

Язык Go в последнее время неоднократно обсуждался на хабре — его и критиковали , и хвалили. Мы в Intel любим Go и участвуем в open-source разработке этого проекта. Если вы тоже используете Go, интересуетесь его внутренним строением и вопросами наиболее эффективного программирования на этом замечательном языке, то добро пожаловать под кат. Статья будет о том, каким образом в Go реализован механизм внешних вызовов, и насколько быстро он работает.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии4

JSR 133 (Java Memory Model) FAQ (перевод)

Время на прочтение25 мин
Количество просмотров148K
Добрый день.
В рамках набора на курс «Multicore programming in Java» я делаю серию переводов классических статей по многопоточности в Java. Всякое изучение многопоточности должно начинаться с введения в модель памяти Java (New JMM), основным источником от авторов модели является «The Java Memory Model» home page, где для старта предлагается ознакомится с JSR 133 (Java Memory Model) FAQ. Вот с перевода этой статьи я и решил начать серию.
Я позволил себе несколько вставок «от себя», которые, по моему мнению, проясняют ситуацию.
Я являюсь специалистом по Java и многопоточности, а не филологом или переводчиком, посему допускаю определенные вольности или переформулировки при переводе. В случае, если Вы предложите лучший вариант — с удовольствием сделаю правку.
Этот статья также подходит в качестве учебного материала к лекции «Лекция #5.2: JMM (volatile, final, synchronized)».

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Ну и да, приходите учиться ко мне!


JSR 133 (Java Memory Model) FAQ


Jeremy Manson и Brian Goetz, февраль 2004

Содержание:
Что такое модель памяти, в конце концов?
Другие языки, такие как C++, имеют модель памяти?
Что такое JSR 133?
Что подразумевается под «переупорядочением» (reordering)?
Что было не так со старой моделью памяти?
Что вы подразумеваете под «некорректно синхронизированы»?
Что делает синхронизация?
Как может случиться, что финальная поля меняют значения?
How do final fields work under the new JMM?
Что делает volatile?
Решила ли новая модель памяти «double-checked locking» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →
Всего голосов 56: ↑51 и ↓5+46
Комментарии32

Бионическая линза позволяет сделать зрение идеальным

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


Интересная информация появилась на днях в Сети. Руководитель Ocumetics Technology Доктор Гарт Уэбб (Dr. Garth Webb) сообщил о том, что его компании удалось создать бионическую линзу, которая раз и навсегда решает проблемы с остротой зрения. Так, эта линза не только может улучшить остроту зрения, но и забыть о существовании очков или контактных линз.

Сама линза называется Ocumetics Bionic Lens, и разработка ее велась около восьми лет. Общая стоимость проекта составляет $3 млн. Для того, чтобы использовать такую линзу, нужна несложная операция, продолжительность которой составляет всего 8 минут. Операция заключается в введении бионической линзы в глаз шприцом с обычным физраствором. Эта операция очень похожа на процедуру удаления катаракты.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии183

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

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

Интро


Это краткий перевод основных тезисов из брошюры «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 для работы с отдельной собакой
Дальше
Всего голосов 235: ↑224 и ↓11+213
Комментарии128

Takari: Maven на стероидах

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

Предыстория


Уже довольно давно я работаю в проекте, в котором используется система сборки Maven. По началу, когда проект был ещё не таких размеров как сейчас, время его полной компиляции было относительно разумным и не вызывало нареканий. Но со временем код разросся, количество подпроектов резко увеличилось и среднее время полной компиляции выросло до 6 — 10 минут. Что служило постоянным источником упрёков со стороны разработчиков.

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

Так продолжалось довольно долго, пока я не наткнулся на довольно любопытный сайт компании Takari, на котором предлагаются способы по усовершенствованию методов работы с Maven.

Самыми интересными там являются три вещи:

Так же на GitHub у них выложен Maven Wrapper (аналог враппера из Gradle).

Забегая вперёд отмечу, что описываемые здесь инструменты не только решают проблему некорректной работы Maven, но и дают существенный прирост скорости сборки.
Но обо всём по порядку
Всего голосов 19: ↑19 и ↓0+19
Комментарии12

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров991K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров236K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

Ещё один формат хранения архивов: dar

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

Введение



Есть известная поговорка, что системные администраторы делятся на три типа: тех, кто не делает бэкапы; тех, кто уже делает бэкапы и тех, кто делает и проверяет, что бэкапы рабочие.

Однако этого недостаточно, и сейчас для пользователя системы бэкапов важен такой параметр как скорость, причём не только скорость самого бэкапа, то есть архивирования файлов, но и восстановления.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии52

Забудьте о DAO, используйте Repository

Время на прочтение6 мин
Количество просмотров179K
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии14
1

Информация

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