Pull to refresh
6
Karma
0
Rating

User

Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса

Яндекс corporate blog Website development *CSS *HTML *IT Standards *
Tutorial

C 2007 года очень быстро растёт количество используемых в мире смартфонов. В числе прочих причин резкого скачка популярности несколько лет назад покупателей привлекла способность этих устройств отображать сайты так, как они выглядели на экранах компьютеров. Но, купив смартфон и начав им пользоваться, люди отмечали, что для чтения отдельных блоков текста на относительно небольшом экране приходилось постоянно масштабировать страницу. Плюс к тому, многие элементы управления сайтов оказалось неудобно использовать. Это происходило потому, что страницы не были рассчитаны на управление с помощью прикосновений к экрану и зачастую требовали компьютерную мышь или другой манипулятор. Для решения этих проблем начали появляться отдельные версии сайтов, предназначенные исключительно для устройств с маленьким экраном. При этом пользователям оказалось не нужно знать адреса мобильных сайтов. Вместо этого сервер считывает информацию об устройстве из обращённого к нему запроса и определяет, какую версию предпочтительнее отдать посетителю.


Сайт smashingmagazine.com на различных размерах экранов


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

Читать дальше →
Total votes 103: ↑99 and ↓4 +95
Views 104K
Comments 102

Создаем безопасный IP мессенджер с помощью Virgil и Twilio за 30 минут

Virgil Security, Inc. corporate blog Information Security *Cryptography *Programming *
Tutorial

Привет!
Мы уже показывали вам код, с помощью которого можно легко и просто реализовать end-to-end шифрование. Давайте пойдем дальше и, используя сервисы Virgil Security, разработаем безопасный IP мессенджер. Реализация безопасного IP мессенджера со встроенной функцией шифрования – задача далеко не тривиальная. В этой статье мы хотим рассказать как, используя Virgil API и Тwilio IP Messaging API, сделать этот процесс намного проще.
Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views 20K
Comments 10

Отправка Nginx-логов в Google Analytics

DriverPack Solution corporate blog Development for Windows *
image

С наших Download-серверов каждый день скачивается несколько миллионов драйверов (статичных .exe и .zip файлов). Для анализа поведения пользователей перед нами встала задача посчитать следующие параметры: когда, сколько, как часто и даже кто именно скачивает драйверы.

Самым очевидным решением было бы использовать инструменты типа AWstat, GoAccess, ELK stack или Splunk, а в крайнем случае собирать логи Nginx.

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

И тогда мы решили заставить Nginx самостоятельно отправлять события в Google Analytics сразу же после скачивания файла. Мы также смогли передать в GA уникальный идентификатор пользователя ClientID.
В результате мы получили аналитику по статичным файлам, к которым раньше невозможно было привязать счетчик GA.

Под катом готовый конфиг и примеры работы нашей системы.
Читать дальше →
Total votes 38: ↑35 and ↓3 +32
Views 20K
Comments 14

Мысли вслух о разработке javascript-приложений на примере небольшого Line Of Business фреймворка

True Engineering corporate blog JavaScript *
Tutorial
Привет, Хабр!

Не так давно мы сами себе поставили задачу — построить SPA-приложение. Сложное, большое, быстрое, с поддержкой множества устройств, без утечек памяти. К тому же, постоянно развивающееся, чтобы его было легко поддерживать. В общем, как мы и любим — всё и сразу.

Тема SPA-приложений и javascript-приложений в целом не нова, но нам не удалось найти даже на платных ресурсах основательных руководств по разработке приложений. Они являются скорее рассказом о той или иной MV*-библиотеке, чем примером для подражания. При этом не рассматриваются примеры разбиения по слоям, построения иерархий наследования и тонкостей наследования в javascript и т.д.

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

Мы считаем, что данная статья будет полезна:

  1. Front-end разработчикам, у которых уже есть небольшой опыт, но хочется вырасти.
  2. Back-end разработчикам, которым в какой-то момент пришлось начать заниматься js-разработкой и которые чувствуют некую неуверенность при работе с javascript.
  3. Верстальщикам, которые начали заниматься js-разработкой и хотели бы прокачать свои навыки.



Чтиво получилось весьма объемистым, но надеемся, что настолько же полезным.
Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 19K
Comments 8

Пара маленьких лайфхаков поиска по товарам в интернет-магазине

Мосигра corporate blog Usability *
Случайно увидел вот такую подсказку на Озоне:



Это для меня, наверное, лучший пример, как не надо делать поиск в интернет-магазине. Дело в том, что все эти советы спокойно может взять на себя железный мозг, и разгрузить тем самым мозг пользователя. Покупатель при этом даже не заметит, что что-то пошло не так, а, значит, его ничего не остановит перед покупкой. Надо отметить, что ряд ошибок этот конкретный поиск правит, но в моём случае с копипастой названия книги из оптового прайса не прокатило.

У нас самих не лучший в мире поиск, но он продаёт. Давайте покажу, что мы сделали.
Читать дальше →
Total votes 60: ↑55 and ↓5 +50
Views 44K
Comments 32

Регистрация безналоговой компании в Эстонии

Freelance
Sandbox
«Платить налоги – обязанность, платить мало налогов – искусство! » (с)

Хочу поделиться опытом успешной регистрации компании в Эстонии. Я приведу короткую характеристику юрисдикции, расскажу про подводные камни, которые существуют, и поделюсь полученным опытом.

Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.

Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
Читать дальше →
Total votes 61: ↑57 and ↓4 +53
Views 111K
Comments 73

Форматирование изображений с помощью Canvas

HTML *Image processing *Canvas *
Translation
Tutorial


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

В настоящее время многие сайты и веб-приложения владеют технологией обработки изображений. Это можно делать на серверной стороне, что повлечет за собой временные затраты на транспортировку потенциально большого изображения. Чтобы этого избежать, можно обрабатывать картинки на клиентской машине в целях ускорения процесса.
Читать дальше →
Total votes 29: ↑23 and ↓6 +17
Views 32K
Comments 8

Адаптивный и мобильный дизайн с CSS3 Media Queries

Website development *
Translation
Разрешение экрана в наши дни колеблется от 320px (iPhone) до 2560px (большие мониторы) или даже выше. Пользователи больше не просматривают сайты только на настольных компьютерах. Теперь пользователи используют мобильные телефоны, небольшие ноутбуки, планшетные устройства, такие как iPad или Playbook для доступа в интернет. Поэтому, традиционный дизайн с фиксированной шириной больше не работает. Дизайн должен быть адаптивным. Структура должна автоматически изменяться с учетом всех разрешений дисплеев. Эта статья покажет вам как создавать кросс-браузерный адаптивный дизайн при помощи HTML5 и CSS3 media queries.
Читать дальше →
Total votes 91: ↑90 and ↓1 +89
Views 534K
Comments 32

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

Zfort Group corporate blog Website development *
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Total votes 56: ↑48 and ↓8 +40
Views 49K
Comments 11

Кое-что получше A/B тестирования

Self Promo
Всем привет! Меня зовут Василий. Мое главное занятие — повышать конверсию сайтов, ключевую метрику в любом IT-бизнесе.

По статистике, средняя конверсия сайтов в рунете не превышает 1 процента и это значит, что огромное количество интернет-предпринимателей каждый день теряет много денег. Этих предпринимателей можно мысленно разделить на два основных типа: первые — это те, кто просто сидит и смотрит на свой не оптимизированный ресурс и ничего не делает. К сожалению, они обречены быть раздавленными временем инновациями и конкурентами. Вторые — это те, кто пытается что-либо с этим делать. Как правило, для этого они рисуют лендинги, экспериментируют с каналами рекламы и проводят A/B тестирование. A/B тестирование — это крайне необходимый инструмент современного маркетинга, он позволяет определить, какой вариант продающей страницы является наиболее эффективным для большинства пользователей. Чтобы понять, насколько этот метод эффективен — достаточно вспомнить нашумевшую историю про Обаму и 60 млн $. Однако, у этого метода есть и обратная сторона, заключается она в том, что все люди разные, и если к примеру статистика покажет, что женщины по большей части любят котиков, совсем не обязательно что у твоей девушки нет на них аллергии. То есть, если у нас A/B тест показал, что некий вариант лендинга идеален для 60% пользователей и мы выбираем его для нашей рекламной компании, то мы автоматически теряем оставшиеся 40%, которых он ни чем не цепляет. Значит, A/B тестирование не идеально и нужно срочно что-то с этим делать. Причём прямо сейчас, потому что мы ко всем чертям теряем 40% лидов и это вообще не круто!

image
Читать дальше →
Total votes 41: ↑24 and ↓17 +7
Views 5.2K
Comments 34

Дриббблификация дизайнеров

Design
Translation
Примечание: Dribbble — сервис, где графические дизайнеры хвастаются друг перед другом своими работами.


Лишь одно из этих погодных приложений пытается решить насущную проблему.

В сообществе дизайнеров наблюдаются расходящиеся тенденции. С одной стороны мы наблюдаем интересные блоги от Райана Сингера и Джулии Жуо, которые развивают наше ремесло. С другой стороны, всё большее количество народу постят свои работы и обсуждают их на Dribbble, что в целом двигает наше ремесло в обратную сторону. Этот пост – не про Dribbble, как таковой, он про то, что ценит это сообщество. Я буду использовать термин «дизайн продукта», но также буду иметь в виду дизайн пользовательских взаимодействий с продуктом.
Читать дальше →
Total votes 54: ↑46 and ↓8 +38
Views 44K
Comments 32

Несколько интересностей и полезностей для веб-разработчика #31

Website development *JavaScript *HTML *
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Исходники Reddit


Gravit


image

Замечательный графический редактор с открытым исходным кодом. Есть приложения под Mac, Linux, Windows, а также браузерная версия. В Gravit на данный момент реализован базовый функционал: слои, шейпы, пентул и множество различных функций для манипуляций с объектами. Но данный проект по большему счету ориентирован именно на веб-дизайн. Правильнее всего сказать, что Gravit — это смесь графического редактора в типичном представлении с визуальным редактором для разработки сайтов. Именно эта идея и ее реализация в формате open source делает продукт уникальным.
Читать дальше →
Total votes 49: ↑48 and ↓1 +47
Views 46K
Comments 11

Оценка конкурентности поисковых запросов по вариациям поисковой выдачи

Search engines *


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

Оказывается, что степень конкуренции можно практически мгновенно оценить только лишь сравнив поисковую выдачу по двум взаимосвязанным запросам – без анализа пузомерок, сайтов-конкурентов, статистики стоимости клика и перелопачивания гор информации.
Вход для алхимиков
Total votes 28: ↑22 and ↓6 +16
Views 25K
Comments 13

Пара полезных команд, которые могут пригодиться при DDoS и не только

Information Security *
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Total votes 105: ↑101 and ↓4 +97
Views 74K
Comments 21

Проблемы современных рассылок

Interfaces *
Я постоянно анализирую всевозможные рассылки и вообще html письма, которые падают мне в ящик, а это сотни писем каждый день и не перестаю удивляться тому, через какое место они сделаны. В этой статье я бы хотел привести ряд таких примеров и показать пути их решения.

Спам


Куча писем попадает в спам. Даже если они таковыми и не являются. 30% сервисов, в которых я регистрируюсь отправляют подтверждение регистрации мне на почту, но я ловлю его в спаме. Но это я. Да, я читаю папку «спам». Складывается впечатление, что многим просто плевать на потенциальных клиентов. Куда смешнее получать подобные письма в спам от компаний, предоставляющих, например, услуги рассылок. Каламбур.
Читать дальше →
Total votes 43: ↑35 and ↓8 +27
Views 29K
Comments 35

На заметку стартаперу: изменения в законодательстве РФ о юридических лицах

VCStart.com corporate blog
Стартапера, равно как начинающего, так и опытного, практически постоянно интересуют вопросы, связанные с юридической стороной бизнеса. Это показал опыт общения с авторами, размещающими свои проекты для получения финансирования на нашей бирже стартапов. Как нужно регистрировать юрлицо, правильно составить и оформить отношения с инвестором, что должно быть указано в договоре продажи доли проекта – консультации с пошаговыми инструкциями на все эти и многие другие темы порой просто необходимы.

image

Осознавая необходимость компетентного подхода к вопросу, наша платформа привлекла с целью консультирования стартапов постоянного партнера — юридическую фирму «Ветров и партнеры», специализирующуюся на работе с IT-стартапами, сопровождении бизнеса и правах на интеллектуальная собственность.
Читать дальше →
Total votes 44: ↑32 and ↓12 +20
Views 20K
Comments 26

JQuery Deferred — примеры использования

Bankrot-pro corporate blog JavaScript *jQuery *
В этой статье я не буду говорить о том зачем в javascript нужны промисы и в частности JQuery.Deferred. Также не буду приводить справочную информацию, ее достаточно в интернете. Например тут или тут или вот тут.
Эта статья для тек кто уже немного знаком с объектом Deferred из библиотеки JQuery, но не имеет опыта написания сложных цепочек (очередей).

Подготовка

Все примеры кода, рассмотренные здесь, используют асинхронный метод $.ajax(), который возвращает так называемый jqXHR в котором реализованы промис-методы (done, fail, always, then). Нам нужны будут только они, поэтому будем считать что $.ajax возвращает промис (promise).
В некоторых примерах используются методы $.map() и $.each(), которые входят в состав библиотеки JQuery.

Последовательное выполнение

Простейшее использование промисов — это последовательное выполнение асинхронных операций. То есть следующая операция не начинается пока текущая не закончится.

$.ajax('http://echo.jsontest.com/id/1')
.then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/2')
}).then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/3')
}).then(function(result){
    console.log(JSON.stringify(result));
});

Живой пример тут.
Читать дальше →
Total votes 54: ↑45 and ↓9 +36
Views 65K
Comments 15

Обновление данных по популярности CMS-систем, систем аналитики и онлайн-консультантов в Рунете за 2 квартал

RUWARD corporate blog Website development *
Привет, хабр! Ruward:Track (наш совместный проект с ребятами из iTrack) обновил срезы по итогам второго квартала 2014 года. В основу исследования лег автоматический анализ краулером около 5 миллионов доменов зоны .RU (по типовым сигнатурам сервисов).

Свежий срез по популярности коробочных CMS


image

По сравнению с первым кварталом из интересных моментов можно выделить небольшое падение долей наиболее популярных opensource-решений — WordPress и Joomla, по-прежнему лидирующих в сводном списке — и рост доли Битрикса, лидера сегмента платных коробочных систем. Также в сегменте коммерческих CMS впервые в истории рейтингов Ruward/iTrack UMI.CMS немного обошло NetCat по количеству установок в борьбе за второе место.
Читать дальше →
Total votes 40: ↑30 and ↓10 +20
Views 18K
Comments 44

Платформы iBeacon: готовые решения для создания приложений

Development of mobile applications *


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

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

Мне захотелось «поиграть» с технологией, и в то же время не ввязываться в разработку. Для этого я решил найти готовые решения, которые позволяют без программирования построить iBeacon-приложения.

Я получил доступ и потестировал несколько платформ, о которых и расскажу в этой статье.

Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 16K
Comments 9

27+ ресурсов для онлайн-обучения

Programming *

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11 +152
Views 960K
Comments 68
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity