Pull to refresh
73.5
Karma
0.7
Rating
Копетан О. Я. @vanxant

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

  • Followers 99
  • Following 4

Принципы построения REST JSON API

Website development *JavaScript *API *
Tutorial

Эта памятка писалась для внутренних нужд (открыть глаза менее опытным в вебе коллегам). Но, т.к. я насмотрелся велосипедов от довольно уважаемых, казалось бы, контор, — выкладываю на хабр. Мне кажется, многим будет полезно.


Зачем


Надеюсь, читающий уже понимает, зачем ему вообще нужен именно REST api, а не какой-нибудь монстр типа SOAP. Вопрос в том, зачем соблюдать какие-то стандарты и практики, если браузеры вроде бы позволяют делать что хочешь.


  • Стандарт HTTP это стандарт. Его несоблюдение вредно для кармы и ведёт к постоянным проблемам с безопасностью, кэшированием и прочими "закидонами" браузеров, которые совсем не закидоны, а просто следование стандарту.
  • Велосипеды со всякими {error: "message","result":...} невозможно нормально тестировать и отлаживать
  • Поддержка большим количеством готовых клиентских библиотек на все случаи жизни. Те, кто будет вашим api пользоваться, скажут большое человеческое спасибо.
  • Поддержка автоматизированного интеграционного тестирования. Когда сервер на любые запросы отдаёт 200 ОК — ну, это такое себе развлечение.
Читать дальше →
Total votes 71: ↑55 and ↓16 +39
Views 196K
Comments 207

Жизнь внутри черной дыры

Popular science Physics Astronomy
Знаю, что здесь это якобы не приветствуется, но делаю кросс-пост отсюда по прямой просьбе автора — Горькавого Николая Николаевича. Есть некоторый шанс, что их идея перевернёт современную науку. И лучше прочитать о ней в оригинале, чем в пересказе рен-тв или ленты.ру.

image

Для тех, кто не следил за темой. Рассмотрим две вращающихся друг вокруг друга чёрных дыры, допустим, массами 15 и 20 единиц (масс Солнца). Рано или поздно они сольются в одну черную дыру, но её масса будет не 35 единиц, а, скажем, всего 30. Остальные 5 улетят в виде гравитационных волн. Именно эту энергию улавливает гравитационный телескоп LIGO.

Суть идеи Горькавого и Василькова в следующем. Допустим, вы наблюдатель, сидите в своём кресле и чувствуете притяжение 35 единиц массы делить на квадрат расстояния. И тут бац — буквально за секунду их масса уменьшается до 30 единиц. Для вас, в силу принципа относительности, это будет неотличимо от ситуации, когда вас отбросило в обратном направлении с силой в 5 единиц, делить на квадрат расстояния. То есть, неотличимо от антигравитации.

Читать дальше →
Total votes 91: ↑86 and ↓5 +81
Views 109K
Comments 588

Краткая история Лямбды, или почему Итан привирает

Popular science Physics Astronomy
В очередном опусе Итана Сигеля резанула фраза
в интернете кто-то неправ
Пронаблюдав за удалёнными сверхновыми и измерив, как Вселенная расширялась миллиарды лет, астрономы обнаружили нечто удивительное, загадочное и неожиданное.
И нет, с переводом всё в порядке, в оригинале ещё желтее:
By observing distant supernovae and measuring how the Universe had expanded over billions of years, astronomers discovered something remarkable, puzzling and entirely unexpected

wat?

О какой неожиданности может идти речь? Там ведь совершенно шикарная история длиной в 80 лет с яркими открытиями и закрытиями. История про то, как на самом деле делается настоящая наука. История скорее про физиков, чем про физику.
Читать дальше →
Total votes 133: ↑133 and ↓0 +133
Views 31K
Comments 118

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

Artificial Intelligence
Эта заметка — большой комментарий к новости про Google Translate подключил русский язык к переводу с глубинным обучением. На первый взгляд, звучит и выглядит всё очень круто. Однако поясню, почему не стоит торопиться с выводами про «переводчики больше не нужны».

aaaaaaaaa
Читать дальше →
Total votes 44: ↑31 and ↓13 +18
Views 24K
Comments 86

Бесплатный Wifi в России теперь по паспорту

Information Security *
«Известия» пишут, а в комментах дают ссылку на официальный источник, что «россияне больше не смогут получить доступ к интернету в кафе, метро и других общественных местах анонимно», а идентификация пользователя должна будет осуществляться оператором связи путем установления фамилии, имени, отчества (при наличии) пользователя, подтверждаемых документом, удостоверяющим личность. Соответствующее постановление неделю назад подписано Дмитрием Медведевым.
Читать дальше →
Total votes 175: ↑152 and ↓23 +129
Views 47K
Comments 221

Как конкретно освободить интернет

Information Security *Cryptography *
В продолжении статей "Сноуден пролил свет на ситуацию со взломом криптографии. Все плохо" и "Правительство США предало интернет. Нам надо вернуть его в свои руки" — о том, что конкретно нужно сделать для ограничения беспредела спецслужб. Да, Брюс Шнайер уже дал свои рекомендации, но он дал их обычным людям — читателям The Guardian, далёким от ИТ; я же хочу обратиться к специалистам, которые создают и выбирают интернет-технологии.

Но для начала давайте определимся с целями. Основная задача силовых ведомств — всё-таки ловить убийц, наркобаронов, террористов и прочих там педофилов. Задача это нужная и необходимая. Весь вопрос в методах, которыми она решается. Пока это методы сыска — определяется подозреваемый, на него получается ордер в суде, и уже по этому ордеру копы получают доступ к прослушке телефонов, выпискам с банковских счетов, электронной почте — всё нормально. Да, это ограничение прав подозреваемого, вина которого еще не доказана, но это неизбежное зло, иначе копы просто не смогут делать свою работу. Не будет ничего плохого, если сыщик сможет отправить запрос судье в электронном виде со своего смартфона, тот подпишет электронный ордер своей ЭЦП, и на основании этого электронного ордера соответствующие компании отправят копу необходимую информацию в электронном виде назад на служебный смартфон. XXI век в конце концов.
Но увы, копам всегда и везде было проще работать методами жандармов, то есть не думать, а тотально запрещать и не пущать. Так, например, из-за одного подрывника-неудачника, пытавшегося собрать бомбу на борту самолёта и получившего только ожог собственных гениталий, во всём мире теперь нельзя проносить на борт жидкости. Из-за одного придурка с кислотой и пары идиотов с генеральскими погонами теперь ежегодно страдают миллиарды.

Сегодня все сферы жизни так или иначе уходят в интернет, а спецслужбы во всём мире почему-то решили, что теперь они могут получить доступ ко всей передаваемой в интернете информации без всяких ордеров и прочих условностей закона. Но интернет — это техническая штука, и мы, создающие интернет инженеры, можем и обязаны остановить спецслужбы. Нравится нам или нет, но государства будут контролировать магистральные линии связи и крупнейших провайдеров ИТ-услуг, подслушивать и внедрять закладки. Но мы можем и должны создать такие технологические условия, в которых будет технически невозможна автоматическая тотальная слежка государства за гражданами. Я надеюсь, уже никто на планете не верит в честность помыслов главарей спецслужб или в то, что они смогут сами себя ограничить. Поэтому, если мы не справимся и не ограничим их своими силами, уже очень скоро мир Оруэлла покажется недостижимой утопией, идеалом общественного устройства.
За конкретными злодеями — пусть охотятся. Пусть получают ордера на прослушку, пусть взламывают компьютеры негодяев — это всё штучные, ручные методы сыска. А вот тотальный контроль без какой-либо отчетности перед обществом необходимо сделать невозможным.
Читать дальше →
Total votes 82: ↑70 and ↓12 +58
Views 39K
Comments 147

Беззеркальная революция

Gadgets Photographic equipment
В понедельник 23 июля Canon последним из крупных фотопроизводителей анонсировала свою первую беззеркальную камеру EOS-M. На бумаге новая камера имеет неплохие характеристики, но речь пойдет не о ней, а беззеркалках вообще и о позволивших их создать технологиях в частности.

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

При этом крупицы адекватной технической информации в интернете погребены под толстым слоем маркетинговых манипуляций и дилетантских измышлений фотолюбителей. Так что желающих просветиться прошу
Читать дальше →
Total votes 222: ↑203 and ↓19 +184
Views 23K
Comments 365

Резервное копирование данных в MySQL

MySQL *
Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше →
Total votes 88: ↑84 and ↓4 +80
Views 140K
Comments 52

Блеск и нищета GWT (или почему я не верю в Dart часть 2)

JavaScript *
Одной из самых обсуждаемых тем на Хабре стало объявление Гугла о создании нового языка Dart, претендующего на то, чтобы полностью заменить Javascript.
Для Гугла это не первый проект подобного рода. С 2006 года существует Google Web Toolkit, позволяющий создавать веб-приложения полностью на Java. На нём, например, работают Adwords и Google Wave.
Но, не смотря на красивые обещания и очень серьезные, особенно по меркам 2006 года, возможности, GWT так и «не взлетел». Да, проект поддерживается и развивается, но сообщество разработчиков так и не сложилось. Сторонних компонентов мало, они не поддерживаются, знакомых с системой программистов найти сложно.
Практически все «плюшки» языка Dart, которые сейчас рекламирует Google, уже были реализованы в Webtoolkit-е. В этой статье я хочу проанализировать достоинства и недостатки GWT в попытке рассмотреть мутные очертания будущего Dart.
Читать дальше →
Total votes 243: ↑209 and ↓34 +175
Views 10K
Comments 227

Ricoh купил Pentax

Photographic equipment
Компания Ricoh покупает фотобизнес Pentax: новость на сайте Ricoh. Некогда бывшая одним из лидеров отрасли компания Pentax так и не смогла достойно конкурировать на рынке цифровых зеркальных камер; действительно хорошая модель К-5 появилась, похоже, слишком поздно. По данным википедии, в 2010 году Pentax занимала всего 1.5% рынка фототехники.
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 814
Comments 16

Твой айфон следит за тобой, %username%

Information Security *
Британские разработчики Пит Уорден (Pete Warden) и Аластер Аллан (Alasdair Allan) расковыряли один из файлов данных, создаваемых айфонами и айпадами с iOS 4 и выяснили, что эти устройства записывают все передвижения своего владельца. Оригинальная статья выложена на радаре O'Reilly, а её краткий перевод — на ленте. Уорден и Аллан также написали небольшое приложение, позволяющее отобразить на карте ваши похождения — или того, до чьего айфона или компьютера вы сможете добраться.
Координаты определяются по базовым станциям сотовой сети, а не при помощи GPS (видимо, чтобы не держать последний включенным постоянно и поберечь батарею), и накапливаются в файле consolidated.db, который копируется тунцом на компьютер при синхронизации. Справедливости ради надо заметить, что такой не очень точный трек в любом случае какое-то время хранится сотовой сетью и может быть выдан полиции по ее требованию. Но одно дело полиция, а другое — близкие (физически) вам люди, которые могут получить доступ к сведениям, которые вы не очень-то хотели им разглашать. Получает ли эти данные сама Apple — до сих пор неизвестно, равно как и зачем вообще понадобилось их собирать.
Владельцам айфонов рекомендуется как минимум включить шифрование бэкапов в тунце.
Реакции от подчиненных Стива Джобса пока не поступало.
Читать дальше →
Total votes 161: ↑140 and ↓21 +119
Views 12K
Comments 159

HTML5 как победа научного материализма

HTML *
Стандарт HTML5 уже почти готов к использованию. Где-то все еще идут жаркие споры по конкретным секциям DOM, видеокодекам, анимации и прочим 3D, но основа HTML5 — его синтаксис, атрибуты и теги — уже устаканились. Эти разделы стандарта не меняются уже многие месяцы; окончательно и по факту их зафиксируют релизы IE9 и FF4, после чего какие-либо их изменения в рамках пятой версии станут невозможны.
Так как костыли для старых версий IE уже созданы и обкатаны, то уже совсем-совсем скоро, начиная новый проект, можно будет открыть свой любимый редактор и, не скрывая наслаждения, написать

<!doctype html>

Сначала, конечно, html5 появится скорее в бложиках энтузиастов, чем на серьезных сайтах, но — вот увидите — через несколько лет в каждой региональной газете появятся объявления типа «ремонт и настройка ПК, заправка принтеров, 1С, сайты на HTML5».

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

Эта статья о том, почему стандарт html5 получился именно такой, и что на самом деле скрывается за его внешне обтекаемыми формулировками.
Читать дальше →
Total votes 240: ↑211.5 and ↓28.5 +183
Views 5.6K
Comments 194

Консервативная логика

System Programming *
Вооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «Pentium 4» с частотой больше 3 ГГц появился в далеком 2002 году, почти 10 лет назад. За прошедшие годы нормы техпроцессов уменьшились со 180 до 32 нм, но даже это не позволило существенно поднять штатные рабочие частоты. Все упирается в огромное тепловыделение элементов цифровой логики.

В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
Читать дальше →
Total votes 116: ↑112 and ↓4 +108
Views 19K
Comments 40

Еще раз об архитектуре сетевых демонов

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

Так как большинство авторов не удосуживается хотя бы залезть в документацию, то обычно в таких статьях вся информация базируется на неких слухах и пересказах слухов. Эти слухи бродят по сети и поражают википедию, хабрахабр и другие уважаемые ресурсы. В результате получаются опусы вроде "Вы наверное шутите, мистер Дал, или почему Node.js" (пунктуация автора сохранена): она, в основном, верная по сути, но изобилует неточностями, содержит ряд фактических ошибок и изображает предмет с какого-то непонятного ракурса.

Мне было сложно пройти мимо статьи, изобилующей фразами вроде «эффективные реализации polling'а на сегодняшний день имеются лишь в *nix-системах» (как будто poll() есть где-то, кроме некоторых *nix). Этот пост начинался как комментарий, разъясняющий уважаемому inikulin ошибки в его статье. В процессе написания оказалось, что проще изложить предмет с самого начала, что я собственно и делаю отдельным постом.
В моем очерке нет срыва покровов или каких-то неизвестных трюков, здесь просто описываются преимущества и недостатки разных подходов человеком, который проверял, как всё это работает на практике в разных операционных системах.
Для желающих просветиться — добро пожаловать под кат.
Читать дальше →
Total votes 161: ↑159 and ↓2 +157
Views 16K
Comments 53

Вытягивание из Директа всей информации о кампаниях конкурентов

Mathematics *
Sandbox
В продолжение статьи Евгения Ческидова «Яндекс. Директ. Анализируем конкурентное окружение» я хочу показать, как при помощи не очень сложных расчетов и API Яндекса вытащить из Директа буквально всю информацию о рекламных кампаниях конкурентов. Сразу скажу, что идея на практике еще не проверялась, сам факт наличия всей информации и, соответственно, возможности этого расчета был показан Ческидовым только вчера, а алгоритм родился буквально сейчас. Но математически вроде бы всё сходится. Осторожно, под катом много формул.
Читать дальше →
Total votes 93: ↑91 and ↓2 +89
Views 3.8K
Comments 20

Information

Rating
1,334-th
Location
Agalli, Berat, Албания
Date of birth
Registered
Activity