Pull to refresh
57
0
Send message

Do not be evil

Reading time6 min
Views156K
Сегодня довольно непростой, но, очевидно, знаменательный день. Сегодня Яндексу пришлось пойти на шаг, который, как мне всегда хотелось верить, никогда не придётся делать.

Мы обратились в регулирующий орган, ФАС, чтобы вернуть равноправные отношения на рынке мобильных устройств. Наше обращение — признание одного неприятного факта. У нас с вами есть все шансы попасть в мир, где только одна компания будет решать, кто получит возможность донести сервисы до людей и чем эти люди смогут пользоваться.

Мы всегда верили в конкуренцию и право выбора пользователя. Настолько, что даже в наших поисковых результатах с первых дней существования Яндекса стоят ссылки на другие популярные поисковики. Если честно, я всегда был уверен, что и Гугл верит в то же. Что это компания инженеров, производящих крутые продукты. Увы, сейчас очевидно, что помимо технической компании, которая когда-то считала своим лозунгом «Do not be evil», теперь есть и совсем другая – компания, контролируемая юристами и бизнесменами.

Android давно уже совсем не выглядит открытой OS. И уж точно не выглядит открытой политика конкуренции Google на этой платформе. Например, сейчас мы столкнулись с тем, что вендоры, чтобы продавать в России телефоны с сервисами Яндекса, должны отказаться от всех сервисов Google не только в России, но и во всех остальных странах. При этом правила получения GMS и Google Play для каждого из них могут измениться в любой момент.

Мы хотим, чтобы в открытой OS условия и лицензии были открыты и прозрачны для всех.
Читать дальше →
Total votes 462: ↑340 and ↓122+218
Comments1060

HTTP/2 готов

Reading time1 min
Views51K


Сегодня спецификации новой версии HTTP приобрели окончательный вид. Председатель рабочей группы IETF HTTP Марк Ноттингем в своём блоге написал, что IESG формально одобрила спецификации HTTP/2. Теперь они отправляются в редактор RFC, где им присвоят официальный номер RFC, немного отредактируют и опубликуют.

Скоро это замечательное событие отразят в официальном блоге IETF, а пока что Марк Ноттингем от себя лично благодарит всех, кто внёс свой вклад в разработку новых спецификаций. В особенности — разработчиков протокола SPDY, который лёг в основу HTTP/2.
Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments39

Странности в работе Яндекс.Метро: разбор полётов и апдейт приложения

Reading time4 min
Views97K
На прошлой неделе на Хабре был популярный пост о странностях в поведении приложения Яндекс.Метро под Андроид. Мы очень серьёзно относимся к вопросам приватности наших пользователей и корректности поведения наших программ и по итогам поста провели внутреннее расследование.

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

За прошедшее время мы нашли причины, которые привели к подобной ситуации, и сейчас проверяем все наши приложения на предмет таких ошибок.

Мы хотим извиниться перед всеми, кого затронула эта проблема, сказать спасибо автору оригинального поста merced2001, а также всем пользователям, которые помогали выяснять подробности и задавали хорошие вопросы. В самом начале — очень краткие ответы на те, которые были явно заданы в том посте.
Читать дальше →
Total votes 145: ↑124 and ↓21+103
Comments101

Авторинг Perl модулей

Reading time19 min
Views6.3K
При разработке перл-модулей приходится делать много работы, которая практически не связана с задачами и кодом модуля — начиная от создания десятка типовых файлов/каталогов и заканчивая выполнением десятка одинаковых операций необходимых для выпуска новой версии.

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

Кроме того, многие из нас пишут на перле очень много лет, и последний раз читали perlnewmod когда изучали перл. В результате, когда создаются новые модули это нередко делается в стиле 15-ти летней давности, причём система сборки выбирается практически случайным образом — либо древний, но знакомый и точно умеющий что угодно EUMM, либо одна из других (не потому, что нужна именно она, а просто в надежде что она окажется проще и удобнее EUMM, не создав при этом новых проблем… которые она всё-таки со временем создаёт).

Далее кратко описаны имеющиеся на начало 2015 года средства, которые могут облегчить процесс разработки перл-модулей, сделать ваши модули более современными, и упростить другим разработчикам доработку ваших модулей. Я постарался перечислить их основные плюсы и минусы, но т.к. сам пользовался не всеми то буду дополнять/исправлять этот список в соответствии с вашими комментариями.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments34

Введение в разработку web-приложений на PSGI/Plack. Часть 4. Асинхронность

Reading time8 min
Views3.9K
С разрешения автора и главного редактора журнала PragmaticPerl.com я публикую эту статью.
Оригинал статьи можно прочитать здесь.

Продолжение цикла статей посвященных разработке PSGI/Plack. Разбираемся с асинхронностью.
В предыдущий статьях мы рассмотрели основные аспекты разработки под PSGI/Plack, которых, в принципе, достаточно для разработки приложений практически любой сложности.

Мы разобрались, что такое PSGI, разобрались как устроен Plack, затем мы разобрались, как устроены основные компоненты Plack (Plack::Builder, Plack::Request, Plack::Middleware). Затем мы подробно рассмотрели Starman, который является хорошим PSGI-сервером, готовым для использования в production.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments1

Обновление tzdata для России (системное и java в Ubuntu/Debian, а также в MySQL)

Reading time3 min
Views65K

Предисловие


Как многие помнят, в этом году был принят закон, в связи с которым поменялись часовые пояса в России с 26 октября 2014 г. Само собой, сразу после принятия закона я поставил в календарь напоминалку на начало октября «обязательно обновить tzdata». Каково же было моё удивление, когда я не обнаружил апдейтов tzdata в debian и ubuntu. Решил подождать еще немного, наткнулся на открытые баги в дистрибутивах (Ubuntu #1377813, #1371758, Debian #761267). Коллеги усиленно напоминали о необходимости апдейтов, но мейнтейнеры не реагировали. Чтобы не устроить себе аврал к концу месяца, решил собрать пакеты и проапдейтить вручную. Важно отметить, что информацию о зонах в некотором софте, например, в MySQL, потребуется обновить вручную. Далее последует короткий мануал.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments58

Функции в Perl

Reading time11 min
Views63K
image

В Perl заложено огромное количество возможностей, которые, на первый взгляд, выглядят лишними, а в неопытных руках могут вообще приводить к появлению багов. Доходит до того, что многие программисты, регулярно пишущие на Perl, даже не подозревают о полном функционале этого языка! Причина этого, как нам кажется, заключается в низком качестве и сомнительном содержании литературы для быстрого старта в области программирования на Perl. Это не касается только книг с Ламой, Альпакой и Верблюдом («Learning Perl», «Intermediate Perl» и «Programming Perl») — мы настоятельно рекомендуем их прочитать.

В этой статье мы хотим подробно рассказать о маленьких хитростях работы с Perl, касающихся необычного использования функций, которые могут пригодится всем, кто интересуется этим языком.
Читать дальше →
Total votes 106: ↑100 and ↓6+94
Comments37

Ковыряционный анализ, балалайка, божена – а как вы разговариваете с коллегами?

Reading time8 min
Views66K
imageСвой собственный сленг рано или поздно образуется в любой команде. Айтишный же, наверное, складывается на 90% из словечек, которые более-менее понятны любой другой компании-разработчику, особенно в контексте. А на 10% — из особенностей фунциональности разрабатываемого продукта или конкретного разработчика.
Под катом – профессиональный словарик девелоперов Parallels. А какие у вас в команде крылатые выражения?
Читать дальше →
Total votes 171: ↑129 and ↓42+87
Comments67

Совместный эксперимент команд Яндекс.Почты и Nginx: действительно ли SPDY ускорит интернет?

Reading time7 min
Views66K
Мы в Яндекс.Почте совместно с командой Nginx провели исследование, чтобы на живом примере с подробностями расставить точки над «ё» в вопросе о том, насколько и за счет чего SPDY ускоряет интернет.

Про сам SPDY вы, конечно, знаете. В 2011 году несколько разработчиков компании Google опубликовали черновик нового протокола, призванного стать заменой привычному HTTP. Его основные отличия заключались в мультиплексировании ответов, сжатии заголовков и приоритизации трафика. Первые несколько версий были не вполне удачными, но к 2012 году спецификация устоялась, появились первые альтернативные (не из Google) реализации, доля поддержки в браузерах достигла 80%, вышла стабильная версия nginx с поддержкий SPDY.



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

Есть много интересных исследований вокруг SPDY, в том числе самого Google. Компания-автор протокола показывала, что в их случае SPDY ускоряет загрузку на 40%. Исследование протокола SPDY проводила и компания Opera. Но ни методик подсчета, ни примеров страниц, на которых были достигнуты столь впечатляющие результаты, в этих исследованиях не было.
Итак, что именно мы измеряли и к каким выводам пришли
Total votes 215: ↑208 and ↓7+201
Comments59

Изолирование приложения с IP-адресом из VPN другой страны на примере Steam

Reading time7 min
Views67K
Abstract: Изоляция приложения на уровне сети использованием network namespaces Линукса. Организация SSH-туннелей.

Традиционно, большая часть статьи будет посвящена теории, а скучные скрипты — в конце статьи. В качестве субъекта для экспериментов будет использоваться Steam, хотя написанное применимо к любому приложению, включая веб-браузеры.

Вместо вступления. Я просто покажу эту картинку:

147%… Что-то мне это напоминает. Впрочем, хабр не для политики.

Цена на игры в Стиме зависит от региона. Регион — от IP'шника. Есть желание иметь цены в рублях, а не в евро.

Для этого мы используем VPN через SSH с использованием tun-устройств, плюс network namespaces для изоляции приложения от всех остальных сетевых устройств.

Network namespaces


Традиционно, приложение, запускающееся даже с правами пользователя, имеет полный доступ в сеть. Оно может использовать любой сетевой адрес, существующий в системе для отправки пакетов.

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

Если у нас есть несколько интерфейсов (один из которых относится к VPN), то нет штатных методов сказать стиму, что надо использовать его, а не eth0/wlan0. Точнее, мы можем «завернуть» весь трафик в VPN, но это не всегда желательно. Как минимум — рост latency и снижение скорости (даже если VPN ведёт на супербыстрый сервер, увеличение latency, оверхед от туннеля и фиксированная ширина локального канала ставят TCP в положение, когда приходится резать скорость). Как максимум — одно дело «покупать через русский VPN», другое дело — пускать туда весь трафик. Меня совсем не прельщает использование VPN для получения защиты роскомнадзором от оппозиции и вольнодумства.

В этих условиях возникает большое желание оставить один на один конкретное приложение и заданный сетевой интерфейс. Один. Сконфигурированный для нужд только этого приложения.

Для решения этой задачи в Linux, уже довольно давно (аж с 2007 года) существует технология, называемая network namespaces, то есть пространства имён для сетей. Суть технологии: над сетевыми интерфейсами создаётся подобие «каталогов», в каждом каталоге может быть несколько сетевых интерфейсов и приложений. Приложение, оказавшееся в заданном сетевом пространстве имён, может использовать (и видит) только те сетевые интерфейсы, которые отнесены к этому пространству.

Картинка ниже поясняет происходящее:

Читать дальше →
Total votes 111: ↑105 and ↓6+99
Comments84

Госзатраты: мониторинг госрасходов, API и соревнование для разработчиков

Reading time2 min
Views26K
Госзатраты (clearspending.ru) — это новый общественный и некоммерческий проект которым мы занимались последние полгода в виде базы всех государственных и муниципальных контрактов.

Мы взяли всю базу контрактов с zakupki.gov.ru и, после некоторого количества усилий, превратили в веб-сайт с удобным поиском, навигацией, некоторым количеством аналитики и, что особенно важно, с API.


И вот тут остановимся подробнее. API — это чуть ли не самая главная отличительная черта сайта от большинства подобных ему.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments46

Оона Ряйсянен определила GPS-координаты вертолёта по звуку с Youtube

Reading time2 min
Views143K
Финский инженер и хакер Оона Ряйсянен (Oona Räisänen), которая увлекается обработкой звука, случайно обнаружила на Youtube видеозапись, сделанную с вертолёта во время преследования автомобиля. Оону не увлекли приключения полиции, но она очень заинтересовалась необычным звуком, который услышала из колонок, особенно с левого канала.



Оона сначала подумала, что это помехи от двигателя, но когда изолировала левый канал и усилила звук (selostus2.mp3), то сразу стало ясно, что это некий таинственный цифровой сигнал!
Читать дальше →
Total votes 314: ↑305 and ↓9+296
Comments96

Алгоритмы и структуры данных поиска. Лекции и курсы от Яндекса

Reading time4 min
Views154K
Сегодня мы завершаем новогоднюю серию постов, посвященных лекциям Школы анализа данных. Последний по порядку, но никак не по важности курс — «Алгоритмы и структуры данных поиска».

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

Мы учли то, о чём нас просили в комментариях к прошлым курсам — теперь при желании можно не только смотреть/скачивать лекции по отдельности, но и загрузить всё разом в виде открытой папки на Яндекс.Диске. Кстати — в предыдущих постах тоже появились такие же апдейты (вот ссылки для удобства: «машинное обучение», «дискретный анализ и теория вероятностей», «параллельные и распределённые вычисления»).



Лекции читает Максим Александрович Бабенко, заместитель директора отделения computer science, ассистент кафедры математической логики и теории алгоритмов механико-математического факультета МГУ им. М. В. Ломоносова, кандидат физико-математических наук.
Содержание курса, тезисы лекций и ссылки на видео
Total votes 115: ↑108 and ↓7+101
Comments18

Система поиска плагиата

Reading time20 min
Views72K

Предисловие


Пушкин
Одно время мне везло на всякие странные работы. Например, я чуть было не устроился админом в синагогу. Остановила меня только предчувствие, что меня там как последнего гоя будут заставлять работать по субботам.

Другой вариант тоже был любопытным. Фирма сочиняла эссе и курсовые для американских студентов, которым в лом было писать самим. Уже потом я узнал, что это довольно распространенный и прибыльный бизнес, которому даже придумали собственное название — «paper mill», но сразу такой способ зарабатывания на жизнь показался мне полным сюром. Однако же надо заметить, что интересных задач на этой работе оказалось немало и среди них — самая сложная и хитрая из тех, что я делал за свою карьеру, и которой можно потом с гордостью рассказывать детям.

Формулировка ее была очень проста. Сочинители курсовых — удаленные работники, очень часто — арабы и негры, для которых английский язык был неродным, и ленивы они были ничуть не меньше самих студентов. Нередко они шли по пути наименьшего сопротивления и вместо написания оригинальной работы тупо передирали ее из Интернета, целиком или частями. Соответственно, надо было найти источник (или источники), сравнить, как-то определить процент сплагиаченности и передать собранные сведения для уличения нерадивых.

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

В качестве языка реализации был выбран Перл, что оказалось очень удачным. Ни на каком статическом компилируемом языке с их ригидностью и тормознутостью запуска решить эту задачу вообще было невозможно. Переписать готовое решение можно, а придти к нему путем многочисленных проб — никак нельзя. Ну и плюс куча отличных обкатанных библиотек.
Читать дальше →
Total votes 138: ↑129 and ↓9+120
Comments41
2

Information

Rating
Does not participate
Registered
Activity