Search
Write a publication
Pull to refresh
1
0
Send message

Почтовый офис Яндекса: как мы сделали сервис, анализирующий результаты рассылок в реалтайме

Reading time4 min
Views26K
У Яндекса есть сервис для добросовестных рассыльщиков писем — Почтовый офис. (Для недобросовестных у нас в Почте есть Антиспам и кнопка «Отписаться».) С его помощью они могут понимать, какое количество их писем пользователи Яндекс.Почты удаляют, сколько времени их читают, насколько дочитывают. Меня зовут Антон Холодков, и я занимался разработкой серверной части этой системы. В этом посте я расскажу о том, как именно мы ее разрабатывали и с какими трудностями столкнулись.



Для рассыльщика интерфейс Почтового офиса полностью прозрачен. Достаточно зарегистрировать в системе свой домен или email. Сервис собирает и анализирует данные по множеству параметров: имени и домену отправителя, времени, признаку спам/не спам, прочитано/не прочитано. Также реализована агрегация по полю list-id — специальному заголовку для идентификации рассылок. Источников данных у нас несколько.
Читать дальше →

Выразительный JavaScript: Введение

Reading time9 min
Views470K


Перевод книги Marijn Haverbeke "Eloquent JavaScript". Лицензия Creative
Commons attribution-noncommercial license
. Код предоставляется под лицензией MIT.


Содержание



Читать дальше →

Выразительный JavaScript: Величины, типы и операторы

Reading time10 min
Views157K

Содержание




Под поверхностью машины движется программа. Без усилий, она расширяется и сжимается. Находясь в великой гармонии, электроны рассеиваются и собираются. Формы на мониторе – лишь рябь на воде. Суть остаётся скрытой внутри…

Мастер Юан-Ма, Книга программирования

Читать дальше →

Подстраховка web-доступности семантических областей HTML5 через роли WAI-ARIA

Reading time7 min
Views34K
Как известно, HTML5 имеет расширенные возможности семантической вёрстки. Он позволяет обернуть отдельные логические блоки страницы в специально предназначенные для них блочные теги, какие как header, main, footer и другие. Ну а улучшение структурной и семантической вёрстки, как правило, автоматически способствует повышению уровня accessibility web-интерфейса для пользователей программ экранного доступа, потому что они добавляют элементы страницы, по которым возможно осуществлять навигацию и быстро перемещаться между блоками контента.

В принципе, дополнительная разметка для обеспечения accessibility реализуется через отдельную технологию WAI-ARIA, однако и стандартные семантические структуры HTML5 современными браузерами и современными программами экранного доступа воспринимаются как соответствующие атрибуты ARIA для вспомогательных технологий. Проще говоря, это означает, что в теории следующие два варианта вёрстки с точки зрения программ чтения экрана аналогичны::
Читать дальше →

Замыкания в Javascript [Часть 2]

Reading time19 min
Views38K
Предыдущая часть.

  • Замыкания
    • Автоматическая сборка мусора
    • Создание замыканий

  • Что можно сделать с помощью замыканий?
    • Пример 1: setTimeout c ссылкой на функцию
    • Пример 2: Ассоциирование функций с методами экземпляра объекта
    • Пример 3: Инкапсуляция взаимосвязанной функциональности
    • Другие примеры

  • Случайные замыкания
  • Проблема утечки памяти в Internet Explorer

Читать дальше →

Проектируем информационную архитектуру для e-commerce. Часть 1

Reading time10 min
Views40K
image

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

Видео докладов с FrontTalks

Reading time2 min
Views9.2K
19 сентября в Екатеринбурге прошла конференция сообщества фронтенд-разработчиков.

Ниже представлены видео-записи докладов.

Как сделать Инстаграм в браузере (Дмитрий Дудин, xbSoftware)



  • достоинства и недостатки Canvas, WebGl, SVG и CSS-фильтров и шейдеров;
  • неизведанный мир SVG-фильтров, его продуманные до мелочей устои, синтаксис и правила;
  • возможности обработки изображений — от простых чёрно-белых картинок до нелинейных искажений и градиентных карт.

Читать дальше →

Советы маркетологам: как использовать квизы для привлечения пользователей

Reading time6 min
Views26K
Квизы как инструмент вовлечения посетителей сайта невероятно популярны. Маркетологи нещадно используют когнитивные убеждения людей и их тягу к прохождению тестов, викторин, отгадыванию кроссвордов и шарад. Но как сделать так, чтобы Ваш квиз прошли более 20 000 раз всего за 3 дня? Все секреты расскажем в статье.

Пятого июля 2014 года блог, посвященный еде, под названием Food52 опубликовал в Twitter квиз, который назывался «А какой вы торт?»

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

К вечеру 7-го июля (всего три дня спустя начала викторины), пост с квизом просмотрели более 20 000 раз – он стал просто хитом!
Читать дальше →

Как мы отучили аутсорсинг перекидываться мячом со внутренним ИТ-отделом

Reading time5 min
Views52K


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

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

Аппаратное ускорение в жизни верстальщика. Семинар в Яндексе

Reading time6 min
Views71K

Привет! Меня зовут Александр Завьялов. В Яндексе я занимаюсь разработкой интерфейсов. Недавно я выступил перед коллегами с докладом об аппаратном ускорении в жизни верстальщика, где также коснулся смежных тем. Рассказал о производительности веб-страниц, о том, как она измеряется и к чему она может стремиться.



Ссылка, если видео не отображается

На основе доклада я подготовил этот пост. Я расскажу о том, как браузеры оптимизировали процесс отрисовки: с чего начинали и до чего докатились. Что сейчас можно сделать, чтобы жизнь верстальщиков и пользователей стала немного лучше. Я надеюсь, что кого-нибудь натолкну на какие-нибудь улучшения. Мне бы это было приятно.


Читать дальше →

Дайджест интересных материалов для мобильного разработчика #73 (29 сентября-5 октября)

Reading time2 min
Views11K
Пожалуй, главным событием этой недели стала презентация Windows 10 – новой «универсальной» ОС Microsoft, Technical Preview которой уже можно попробовать. Кроме нее есть история Lumia SensorCore SDK, FbStart от Facebook, экосистема для разработчиков от «Ростелеком» и абсолютно лучший материал недели — 20 способов мошенничества при покупке iPhone.

Читать дальше →

JavaScript. Вопросы на собеседовании

Reading time3 min
Views137K
Не так давно озадачился поиском работы, в связи с чем посетил n-нное количество собеседований и услышал много интересных вопросов. По сети гуляет много статей с вопросами по JS, поэтому постараюсь выбрать вопросы, которые ещё не видел. Здесь нет вопросов типа Что такое замыкание?, Наследование в JavaScript или Сделайте ajax запрос на VanillaJS. Кстати советую поискать ответы на эти вопросы, прежде чем читать статью :) Под катом вопросы типа «с подвохом». Вряд ли какой-то из них попадётся вам, но, надеюсь, статья настроит вас на «подвоховое» мышление, и напомнит некоторые скользкие места и подводные камушки javascript.
Читать дальше →

Placebo-кнопки в повседневности и в веб-дизайне

Reading time4 min
Views35K
imageГде-то полгода назад под знаками пешеходного перехода появились яркие желтые сенсорные кнопки с индикатором активации (когда нажимаешь на кнопку загорается красная лампочка, расположенная непосредственно над ней, такая же лампочка загорается на кнопке, расположенной на противоположной стороне). Логичный вывод о том, что эти кнопки как-то управляют светофором, не получил достаточного практического подтверждения. Те редкие случаи, когда после нажатия загорался зеленый свет, скорее были совпадением, чем результатом отлаженной работы системы управления.

Быстрый поиск на просторах интернета подсказал, что кнопки должны бы управлять светофорами, но еще не выполняют своих функций по тем или иным причинам. В комментариях на одном из форумов была приведена ссылка на статью BBC в которой описывался подобный опыт в других странах. Из статьи следовало, что либо эти кнопки должны работать в ночное время, либо они являются уловкой, которая называется «кнопки-плацебо».
Читать дальше →

Опросы на сайте: Как интерпретировать полученные результаты

Reading time4 min
Views15K


Можете ли вы сказать, кто вам клиент? Понимаете ли вы, в чем его задачи и сложности? Знаете ли вы, какие проблемы он решает с помощью вашего продукта или услуги?
Читать о том, как интерпретировать результаты, полученные при опросе

Создаем виртуальный mPOS терминал

Reading time3 min
Views14K
Дорогие друзья,

Мы в Payler всегда стараемся придумывать и разрабатывать новые продукты. У нас появилась идея, которую мы бы хотели рассказать вам и услышать ваше мнение — будет ли такой продукт востребован, какие могут быть его вариации. В конце поста вас ждет опрос — мы будем очень признательны, если вы ответите на вопросы. Мы предлагаем разработать виртуальные мобильные терминалы процессинга платежей с банковских карт. Подробности под катом:

image
Читать дальше →

Как создать опрос пользователей, повышающий конверсию?

Reading time8 min
Views32K
Ежедневно на Ваш сайт заходят сотни, а может, и тысячи посетителей. Это, несомненно, радует и говорит о популярности вашего проекта. Но будут ли эти люди покупать? Являются ли они вашей целевой аудиторией? Или они просто зашли из любопытства?

Если вы не можете отделить от всего массива пользователей Интернета именно вашу целевую аудиторию, шанс на успех в бизнесе чрезвычайно мал. Именно поэтому необходимо постоянно изучать свою аудиторию: ее интересы, поведение, предпочтения, уровень дохода. Как это сделать? С помощью опросов. О них и пойдет речь в нашей статье.
Читать о том, как создать убедительный опрос

Holy Grail на стероидах: тотальная синхронизация и изоморфный JavaScript на Swarm.js

Reading time7 min
Views22K
Сегодня на Хабре мы представляем технологию реплицированной модели, которая позволяет создавать коллаборативные и реалтаймовые веб приложения так же легко, как локальные десктопные. Мы считаем, что при разработке приложений, синхронизация данных в реальном времени должна быть доступна так же, как TCP поток, HTTP запрос или ток из розетки — сразу и без вопросов. HTML5 приложения, написанные на Swarm, в части автономности, локальности и скорости загрузки не уступают нативным.
Используя библиотеку Swarm, за выходные мы делаем больше, чем за месяц делали без Swarm. Что важней — можем делать то, что без неё делать вообще не могли. Эту библиотеку синхронизации мы предлагаем совершенно бесплатно.



Сегодня мы выкладываем TodoMVC++, реактивное HolyGrail-на-стероидах приложение, написанное на Swarm+React. Приведу список демонстрируемых в приложении возможностей:
Читать дальше →

HTML-минимизация в Web Essentials 2013: Что изменилось за год?

Reading time5 min
Views7.6K
Логотипы Web Essentials и WebMarkupMin
С момента публикации предыдущей статьи прошел почти год и приведенный в ней пример минимизации HTML-фрагмента уже неактуален (команда Web Essentials > Minify selection больше недоступна в контекстном меню при редактировании HTML-файлов). Серьезные изменения в данном функционале произошли еще в декабре прошлого года, когда вышла версия 1.5, но в тот момент у меня не было времени, чтобы написать об этом статью. Поскольку за это время никто не описывал данный функционал на русском языке (на английском языке есть статья Дэвида Пакетта «Minifying your HTML»), то я постараюсь наверстать упущенное.
Читать дальше →

Свой проект на Кикстартере: практическое руководство

Reading time11 min
Views142K


Мы – российская студия, более двенадцати лет занимающаяся разработкой компьютерных игр. Нами были созданы «Мор. Утопия» (Pathologic), «Тургор» (Tension), «Тургор. Голос цвета» (The Void), «Эврика!» (Cargo! The Quest for Gravity) и «Тук-тук-тук» (Knock-Knock).

Несколько лет назад – по совету нашего опережающего время друга – мы решили опробовать краудфандинговую площадку Kickstarter в качестве источника финансирования небольшого игрового проекта.

Несмотря на сомнения, первая кампания успешно завершилась в середине сентября 2012 года. Мы собрали сорок одну тысячу долларов при заявленных тридцати. На полученные деньги была разработана и доставлена вкладчикам игра «Тук-тук-тук» (Knock-knock).

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

Поэтому мы решили провести еще одну кампанию. Мы собираемся сделать графически, технологически и геймплейно более совершенный ремейк нашей первой игры «Мор. Утопия» (Pathologic).

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

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №127 (22 — 28 сентября 2014)

Reading time5 min
Views35K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →

Information

Rating
Does not participate
Registered
Activity