Pull to refresh
57
0
Дмитрий @bdsoft

User

Send message

Пассивный фингерпринтинг для выявления синтетического трафика

Reading time 3 min
Views 29K
imageЯ достаточно долгое время вынашивал идею рассмотреть клиентов публичного web-сервиса, браузер которых посылает заголовок User-Agent как у браузера в Windows, и которые при этом имеют все признаки сетевого стэка *nix-систем. Предположительно, в этой группе должна быть большая концентрация ботов, запущенных на недорогих хостингах для накрутки трафика или сканирования сайта.
Читать дальше →
Total votes 33: ↑27 and ↓6 +21
Comments 43

PhoneGap vs. Cordova

Reading time 2 min
Views 54K
Многие ошибочно полагают, что PhoneGap это некая единая система. Однако, существует три различные платформы — Cordova (CLI), Phonegap (CLI) и PhoneGap Build. Каждая имеет свои особенности и мелкие вариации.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 20

Нативные приложения обречены (часть 1)

Reading time 6 min
Views 41K
image

Отныне я не буду больше создавать нативные приложения. Все мои приложения в дальнейшем будут прогрессивными веб-приложениями (PWA, Progressive Web Apps). Это такие приложения, которые предназначены для еще более органичной работы на мобильных устройствах, чем нативные приложения.

Что я имею ввиду под «более органичной работой»? Большая часть веб-траффика исходит от мобильных устройств и пользователи устанавливают в среднем от 0 до 3 новых приложений в месяц. Это означает, что люди не тратят много времени на поиск новых приложений в App store, но они проводят много времени в сети, где могут найти и использовать ваше приложение.

Прогрессивные веб-приложения начинают свою работу как любое другое веб-приложение, но когда пользователь возвращается в приложение и показывает (фактом использования), что он заинтересован в более регулярном обращении к приложению, браузеры предложат пользователю установить приложение на свой домашний экран. PWA также могут использовать push-уведомления как и нативные приложения.
Читать дальше →
Total votes 84: ↑53 and ↓31 +22
Comments 187

Могут ли PWA (Progressive Web Apps) образца 2018 года составить достойную конкуренцию нативным приложениям?

Reading time 14 min
Views 61K


Когда изменения происходят постепенно, шаг за шагом, порой бывает трудно заметить насколько они драматичны и всеобъемлющи. Казалось бы всего несколько лет назад web платформа проигрывала нативным приложением практически по всем фронтам, и пропасть между тем, что можно было сделать в браузере, и тем, что было доступно приложениями, загружаемым из магазинов, таких как Apple App Store или Google Play Store, была ужасающе огромной. Одним из свидетельств этой пропасти является то, что в 2007 году web по факту был основной платформой разработки приложений для первого iPhone, но эта платформа явно не взлетела. App Store же появился только год спустя со второй версии операционной системы, и сразу же случился бум нативных приложений, который и сформировал рыночный ландшафт таким, каким мы его знаем теперь.


Многое изменилось с тех пор, и web технологии на месте не стояли. Они шли по пути снятия ограничений, и то, что раньше было принципиально невозможно — работа оффлайн, фоновая синхронизация данных, push-нотификации, поддержка входа в один клик и оплаты с помощью кредитных карт, Apple Pay, Google Pay и других методов, встроенная в браузер — теперь реальность. Эти функции органично дополняют основную часть платформы — HTML/CSS и JavaScript, которая в последние годы развивалась более чем активными темпами. Например новый проект Houdini, который ещё находится на достаточно ранней стадии, снимает почти все ограничения на то, что можно сделать с помощью CSS, давая возможность среди прочего создавать свои лэйауты и использовать их наравне с Grid и Flexbox, и открывая программный доступ к внутренностям CSS движка. Но даже и без Houdini уже сейчас можно создавать CSS анимации, работающие со скоростью 60 FPS (frames per second).

Читать дальше →
Total votes 53: ↑51 and ↓2 +49
Comments 66

Как рекламные ищейки идут по вашему следу в Интернете

Reading time 5 min
Views 11K
Прихожу домой, а отец мне:
— Курил?
— Нет, стоял, где курили.
— Да я смотрю, ты и сидел там, где пили, и лежал там, где сексом занимались…

Бородатый анекдот

От переводчика


Таргетинг рекламы не всегда направлен персонально на конкретного пользователя. Зачастую реклама таргетируется на группу пользователей, имеющих те или иные общие признаки. Что и приводит к тому, что, как в старом анекдоте, вы видите рекламу сигарет не потому что курите, а потому что стояли рядом с теми, кто интересовался сигаретами.

Автор рассказывает о множестве техник таргетирования рекламы и делает неожиданные выводы о том, что это — не так уж и плохо. Просто нужно больше работать над прозрачностью подобных механизмов, чтобы исключить злоупотребления.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 9

Web PUSH Notifications быстро и просто

Reading time 17 min
Views 336K

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


Информации по этой теме в интернете полно, но она фрагментирована, разбросана по разным ресурсам и перемешена с уведомлениями для мобильных устройств с примерами на Java, C++ и Python. Нас же, как веб-разработчиков, интересует JavaScript. В этой статье я постараюсь саккумулировать всю необходимую и полезную информацию.


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 66

Пишем расширение для Chrome «загрузка аудиозаписей с Вконтакте», часть 2

Reading time 6 min
Views 17K
Продолжим писать наше расширение для Chrome, которое добавляет ссылку «Скачать» для каждой аудиозаписи вконтакте.
В прошлый раз мы изменяли наш раздел Мои Аудиозаписи так.
Было изначально: Стало с расширением:
Оригинал Результат


Но, в тот раз, у нашего расширения был существенный недостаток: оно не работало при переходе со страницы на страницу.
Если зайти на главную страницу, потом перейти в Мои Аудиозаписи, то ссылки у песен не появлялись.
Напомню, вконтакте при переходе со страницы на страницу не обновляет страницу в классическом понимании, а программно изменяет разметку страницы, и обновляет адресную строку. Это не является классическим браузерным переходом на новую страницу, и поэтому наше расширение не обновлялось.
Давайте это исправим.

Как и прежде, наше расширение будет состоять из трех файлов — файла описания (manifest.json), внедряемого js скрипта (vk_inject.js), и внедряемого файла стилей (vk_styles.css).
Читать дальше →
Total votes 15: ↑9 and ↓6 +3
Comments 5

Архитектура растущего проекта на примере ВКонтакте

Reading time 14 min
Views 41K


Алексей Акулович объясняет жизненный путь высоконагруженного проекта на PHP. Это — расшифровка Highload ++ 2016.

Меня зовут Лёша, я пишу на PHP.

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

Начнём.
Total votes 65: ↑61 and ↓4 +57
Comments 46
31 мая и 1 июня в кампусе бизнес-школы Сколково будет жарко вне зависимости от погоды - на одной площадке соберутся около 1500 участников. Повод собраться более чем подходящий - профессиональный фестиваль "Российские интернет-технологии". Это событие, по масштабам не просто превосходящее конференцию, а включающее в себя целых 7 конференций, объединённых вокруг отраслевой выставки. На фестивале не будет скучно никому: от уставшего от опыта системного администратора или программиста высоконагруженных систем до начинающих тестировщиков и прожжённых продажников. Почти как на обновлённом Хабре :-) Участников будут встречать конференции: по серверной и фронтенд-разработке, по управлению и предпринимательству, по разработке мобильных приложений, по эксплуатации и devops, по высоконагруженным системам и конференция на стыке enterprise и web-культур. Кстати, кто дочитает до конца, кроме примеров, видео и бесплатного учебного курса получит неплохую скидку по волшебному коду HabrCode2016.
Читать дальше
Total votes 28: ↑22 and ↓6 +16
Comments 14

Чек-листы для Google AdWords и Яндекс.Директ и ещё пара секретов

Reading time 7 min
Views 32K
Вот уж никогда не думали, что будем подробно писать о контекстной рекламе в своём блоге! Однако совершенно недавно в нашей системе для web-студий Ptysh появился тип задач «Контекстная реклама» и мы решили выяснить, насколько она популярна. Ещё как популярна! Но. Многие представители российского бизнеса избегают контекст, а некоторые и вовсе разочаровываются в онлайн-рекламе после пары не слишком удачных заходов. Мы смело заявляем: он эффективная, вы просто не умеете её готовить! Сейчас мы вместе с коллегами из DFAKTOR, попробуем дать несколько простых рецептов.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 10

Уязвимость «ВКонтакте» позволяла получить прямые ссылки на приватные фотографии

Reading time 8 min
Views 314K


tl;dr
Была обнаружена уязвимость в закладках ВК, которая позволяла получать прямые ссылки на приватные фотографии из личных сообщений, альбомов любого пользователя/группы. Был написан скрипт, который перебирал фотографии пользователя за определенный период и затем, через эту уязвимость получал прямые ссылки на изображения. Если коротко, то: можно было за 1 минуту получить все ваши вчерашние фотографии, за 7 минут — все фото, загруженные на прошлой неделе, за 20 минут — прошлый месяц, за 2 часа — прошлый год. Уязвимость на данный момент исправлена. Администрация ВКонтакте выплатила вознаграждение в 10к голосов.

История началась с того, как мне в личку во «Вконтакте» кинули изображение. Обычно, если вещь важная, я её загружаю в облако, но в моём случае в этом не было необходимости, и я решил воспользоваться функцией закладок «Вконтакте».
Читать дальше →
Total votes 154: ↑150 and ↓4 +146
Comments 58

Построение признаков и сравнение изображений: локальные признаки. Лекции от Яндекса

Reading time 27 min
Views 17K
Сегодня мы публикуем пятую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба. Всего в программе девять лекций, из которых уже были опубликованы:

  1. Введение в курс «Анализ изображений и видео».
  2. Основы пространственной и частотной обработки изображений.
  3. Морфологическая обработка изображений.
  4. Построение признаков и сравнение изображений: глобальные признаки.



Под катом вы найдете план этой лекции, слайды и подробную расшифровку.
Читать дальше →
Total votes 38: ↑35 and ↓3 +32
Comments 1

Делаем свой персональный Skype, пошаговая инструкция создания WebRTC приложения

Reading time 4 min
Views 138K
WebRTC

WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

В этом топике я расскажу как реализовать простейшее WebRTC приложение.
Читать дальше →
Total votes 102: ↑98 and ↓4 +94
Comments 28

Как мы открывали магазин в ТЦ МЕГА: история ошибок

Reading time 17 min
Views 370K
Интерес к рознице был заметен изначально — с самых первых статей на хабре и на других сайтах мы начали получать запросы на франшизу. Запросы шли со всей страны — Питер, Новосибирск, Краснодар, Ростов-на-Дону, Пермь, Хабаровск, Сочи и так далее. Даже страной дело не ограничилось — люди из Украины, Беларуси и Казахстана тоже хотели открыть у себя магазин Madrobots. Но франшиза — это в первую очередь отлаженные процессы. Как мы могли объяснять, как открыть магазины в других городах, если сами этого толком не умели?

Мы решились открыть наш магазин в большом торговом центре, и теперь готовы рассказать вам о проблемах, косяках, процессах, решениях и выводах. Заходите, под катом интересно.
Читать дальше →
Total votes 175: ↑166 and ↓9 +157
Comments 81

Бизнес в стиле Хабр — 2. Началось

Reading time 2 min
Views 924
С детства нас учат, кто больше работает — тот больше зарабатывает. Многие считают, чтобы увеличить доход вдвое, нужно устроиться на вторую работу. В жизни все с точностью до наоборот.

Читать дальше →
Total votes 84: ↑76 and ↓8 +68
Comments 20

Постраничная верстка rel=«next|prev»

Reading time 3 min
Views 29K
Наряду с использование атрибута rel=«canonical» для указания поисковому боту на дублирование контента, теперь возможно использовать для HTML ссылок значение rel=“next” и rel=“prev” для обозначения положения текущей страницы в отношении соседних в рамках навигационного блока. В рамках веба встречаются различные варианты использования постраничной навигации — статья, разделенная на несколько страниц, либо категория товаров распределенных по нескольким страницам, либо ветка форума, разделенная на последовательность URL-ов. Теперь, включив rel=“next” и rel=“prev” в верстку страниц, мы можем указать Google:
  • Создать консолидированный индекс страниц, чтобы ссылки не рассеивались между отдельными страницами page-1.html, page-2.html, и так далее
  • При поиске направить пользователя на наиболее релевантную страницу среди всех остальных, например в начало статьи, разбитой на несколько страниц
Подробности и нюансы использования
Total votes 80: ↑77 and ↓3 +74
Comments 25

Music Beta by Google запущен

Reading time 1 min
Views 1.8K
image

Для жителей США и по инвайтам.

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



Читать дальше →
Total votes 81: ↑71 and ↓10 +61
Comments 102

Поддержка OAuth 2.0 платформой ВКонтакте

Reading time 2 min
Views 38K
Вчера во ВКонтакте появилась поддержка открытого стандарта авторизации OAuth 2.0. Теперь интегрировать сайты и клиентские приложения с социальной сетью стало значительно проще.

Читать дальше →
Total votes 129: ↑114 and ↓15 +99
Comments 89

OCR в Google Docs теперь поддерживает русский язык

Reading time 1 min
Views 6.9K


В июне прошлого года команда Google Docs представила возможность распознавания текста (OCR). OCR анализирует изображения и PDF-файлы, извлекает текст (пытаясь сохранить форматирование) и позволяет редактировать документ в Google Docs.

Тогда поддерживались тексты только на английском, французском, итальянском, немецком и испанском языках.

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

Поддержка языков, которые поддерживались и ранее, также улучшена. Усовершенствовано и сохранение форматирования документов.
Total votes 84: ↑79 and ↓5 +74
Comments 56

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity