[Из песочницы] Покойся с миром, REST. Долгих лет жизни GraphQL


Перевод. Автор оригинала Samer Buna. Оригинал статьи.



Когда я впервые узнал о GraphQL после долгого использования различных REST API, то не мог удержаться от твитов такого содержания:

Rest API превратился в REST-in-Peace API. Долгих лет жизни GraphQL

Примечание переводчика – Rest In Peace, RIP – распространенная эпитафия «Покойся с миром». Первое слово в ней пишется так же, как акроним REST.

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

Поймите правильно. Я не собираюсь обвинять GraphQL в убийстве REST или чём-то таком. REST не умрет никогда, также как XML будет жить вечно. Но кто в здравом уме станет использовать XML поверх JSON? На мой взгляд, GraphQL сделает для REST то же самое, что JSON сделал для XML.

Continue reading

[Перевод] Selenium: для любителей яблок

Привет! Это моя новая статья, посвященная Selenium. Ранее я уже подробно рассказал об организации масштабируемого кластера Selenium (часть I, часть II). Затем мы рассмотрели вопрос использования Selenium в качестве инструмента отладки автотестов (раз, два), Наконец, нам удалось создать порядок из хаоса на Windows (ссылка). Сегодня мы будем иметь дело с яблоками, точнее с одним большим Яблоком (т.е. с Apple).

Continue reading

Есть ли альтернатива MS Windows, IE и CSP при доступе в личные кабинеты порталов Госзакупок, ФНС России и Госуслуг

image

И сразу дадим ответ – да, можно и нужно, только не отказаться, а дать гражданам и организациям возможность использовать и другие операционные системы, браузеры и средства криптографической защиты информации (СКЗИ). Ответим на вопрос и как – соблюдать стандарты и технологии. Почему бы для доступа в личные кабинеты не использовать авторизованный доступ по протоколу https? И тогда нет необходимости в использования только CSP а ля Микрософт с поддержкой российской криптографии. Тогда автоматом станут востребованы и токены PKCS#11 и как международный стандарт, так и стандарт, поддерживаемый ТК-26, стандарты PKCS#12 (тем же ТК-26), может что-то другое, но стандартное. В этом случае речь уже будет идти не об MS Windows, Interner Explorer и CSP, а о браузерах или других программ с поддержкой https с российскими шифрсьютами. Это может быть и Internet Explorer, и модификации того же Mozilla Firefox, наконец Google Chrome или прокси типа stunnel.
Continue reading

[Перевод] Почему я ненавижу Spring

В начале своей карьеры я реально влюбился в Spring. Я так долго ждал его. Я использовал его во всех своих проектах. Вдобавок мне даже удалось впихнуть туда кучу всякой всячины из Spring Integration. Я был кем-то вроде короля XML. Я делал RPC-слой на основе JMS, protobufs и Kaazing для всего нашего отдела и банка в целом. Я думал: «Это так конфигурируемо. Всего-то пара XML-файлов — это действительно гибко». Я был очень доволен собой.

Но некоторые мои коллеги были склонны не согласиться. У них возникали проблемы, когда они пытались связать всё так, как им хочется; они не знали, где какие XML-файлы им нужны. Были проблемы с версиями Spring, с тем, как подружить их (я, к тому же, далеко зашел с модульностью: у нас было 5 или 6 разных модулей с разными номерами версий, и нельзя было просто так взять и понять, какой из них использовать, не спросив меня). Это были тревожные звоночки, но я их не замечал; я думал, что нужно больше документации или что те ребята просто тупые. Такая ситуация типична сама по себе: мольбы пользователей одного из самых нелюбимых и трудных в использовании фреймворков о помощи часто разбиваются о «да там один файл и немного параметров, это не так уж и тяжело», в то время как все остальные целыми днями пытаются найти магическую комбинацию файлов и параметров, чтобы хоть что-нибудь как-нибудь заработало.

Я всё ещё работаю в той же организации, но теперь я пользователь своего старого фреймворка. В результате этого питания кормом своей собаки я стал ненавидеть Сэма (автор имеет в виду себя — прим. пер.) 2009-2010 годов по нескольким причинам, но в основном — за Spring. Spring — это зло в хорошую погоду, но когда его включают в состав библиотеки или API, которым пользуются другие программисты, — это уже другой уровень зла: как плод любви Гитлера и дьявола. Не позволяйте Spring торчать из вашего API наружу.

Continue reading

[Перевод] Пиратство и четыре валюты

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


Известный всем денежный доллар.

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

Я предлагаю такие обозначения:

  1. ($Д) Денежные доллары
  2. ($В) Временные доллары
  3. ($Г) Доллары головной боли [в оригинале «Pain-in-the-butt-dollars»]
  4. ($Ч) Доллары честности

Игрок делает выбор купить или спиратить игру на основании того, сколько «стоит» каждая услуга (а не продукт!) в этих четырёх валютах, а также в зависимости от ценности для игрока каждой из них.
Continue reading

Высокотехнологичный шопинг: инновации, меняющие облик ритейла и торговых центров

По мере того, как высокие технологии активно приходят в ритейл, совершать покупки становится не только проще, но и… интереснее. Шопинг все больше напоминает увлекательную игру, в которой товары фактически общаются с покупателем, а роботы помогают сделать выбор и расплатиться.

Фото foodandnutrition.org

Continue reading

Конкурс по программированию: JSDash (промежуточные результаты 2)

Объявление: срок приёма решений продлевается до 17 августа.

Спасибо всем, кто уже принял участие в нашем конкурсе по программированию! Мы получили 39 решений от 26 уникальных участников. Публикуем новые промежуточные результаты.
Continue reading

Что нового в nginx?

Максим Дунин (Nginx, Inc.)

Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Continue reading

«Data mining сейчас — это преимущество на рынке»: о конференции SmartData и больших данных

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

В ожидании конференции SmartData, которая впервые состоится в Санкт-Петербурге 21 октября, мы решили внести ясность и расспросили двух членов её программного комитета: Виталия Худобахшова (Одноклассники) и Романа p0b0rchy Поборчего. Они развеяли многие опасения, а разговор получился не только о конференции, но и о состоянии индустрии: что сейчас происходит вокруг machine learning, зачем маленьким компаниям лезть в data mining и почему менеджеры тоже покупают билеты на техническую конференцию обо всём этом.

Continue reading

IP unnumbered в Debian или раздаем адреса экономно

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

При проектировании сети в новом месте хотелось новых плюшек:

  • В некоторой степени изолировать серверы клиентов от чужого трафика;
  • Не дать недобросовестным клиентам повесить себе на интерфейс адреса добросовестных;
  • При необходимости иметь возможность без особой нагрузки порезать трафик;
  • Иметь возможность дать клиенту любое количество IP-адресов.

Теоретически, все эти моменты решаются с помощью обычных VLAN. Однако, возникает проблема с перерасходом адресов — все же жалко клиенту, заказавшему сервер с одним адресом, отдавать сеть /30 и терять три адреса впустую. Также жалко адреса и в обратной ситуации — клиенту надо 6 доступных адресов, а в сеть /29 он уже не поместится, приходится выдавать сеть /28 и терять 7 штук. Continue reading