Pull to refresh
26
1.6
Копетан О. Я. @vanxant

User

Send message

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

Reading time 8 min
Views 334K

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


Зачем


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


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

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

Reading time 10 min
Views 119K
Знаю, что здесь это якобы не приветствуется, но делаю кросс-пост отсюда по прямой просьбе автора — Горькавого Николая Николаевича. Есть некоторый шанс, что их идея перевернёт современную науку. И лучше прочитать о ней в оригинале, чем в пересказе рен-тв или ленты.ру.

image

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

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

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

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

Reading time 11 min
Views 34K
В очередном опусе Итана Сигеля резанула фраза
в интернете кто-то неправ
Пронаблюдав за удалёнными сверхновыми и измерив, как Вселенная расширялась миллиарды лет, астрономы обнаружили нечто удивительное, загадочное и неожиданное.
И нет, с переводом всё в порядке, в оригинале ещё желтее:
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
Comments 118

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

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

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

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

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

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

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

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

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

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

Reading time 10 min
Views 44K
В понедельник 23 июля Canon последним из крупных фотопроизводителей анонсировала свою первую беззеркальную камеру EOS-M. На бумаге новая камера имеет неплохие характеристики, но речь пойдет не о ней, а беззеркалках вообще и о позволивших их создать технологиях в частности.

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

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

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

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

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

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

Ricoh купил Pentax

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

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

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

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

Reading time 15 min
Views 6.1K
Стандарт 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
Comments 194

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

Reading time 14 min
Views 20K
Вооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «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
Comments 40

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

Reading time 13 min
Views 19K
Во многих статьях, в том числе на хабре, упоминаются и даже описываются разные способы построения архитектуры сетевых сервисов (демонов). При этом мало у кого из авторов есть реальный опыт создания и оптимизации демонов, работающих с десятками тысяч одновременных соединений и/или гигабитным трафиком.

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

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

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

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

Information

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