Pull to refresh
9
0
Александр @CyberLight

Пользователь

Send message

58 признаков хорошего интерфейса

Reading time16 min
Views381K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →
Total votes 226: ↑182 and ↓44+138
Comments102

Пишем быстрый и экономный код на JavaScript

Reading time16 min
Views69K
Такой движок JS, как V8 (Chrome, Node) от Google, заточен для быстрого исполнения больших приложений. Если вы во время разработки заботитесь об эффективном использовании памяти и быстродействии, вам необходимо знать кое-что о процессах, проходящих в движке JS браузера.

Что бы там ни было — V8, SpiderMonkey (Firefox), Carakan (Opera), Chakra (IE) или что-то ещё, знание внутренних процессов поможет вам оптимизировать работу ваших приложений. Но не призываю вас оптимизировать движок для одного браузера или движка – не делайте так.

Задайте себе вопрос:
— можно ли что-то в моём коде сделать более эффективным?
— какую оптимизацию проводят популярные движки JS?
— что движок не может компенсировать, и может ли сборка мусора подчистить всё так, как я от неё ожидаю?



Есть много ловушек, связанных с эффективным использованием памяти и быстродействием, и в статье мы изучим некоторые подходы, которые хорошо показали себя в тестах.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments29

Будни багхантинга: еще одна уязвимость в известной соцсети

Reading time4 min
Views53K
Декабрь для меня получился наиболее удачным за четыре года участия в разнообразных программах bug bounty, и я хотел бы поделиться информацией об одной из обнаруженных уязвимостей. Речь пойдет о небезопасной обработке Request-URI (Request Target). На этот раз красивой комбинацией уязвимостей порадовал Facebook*.
Читать дальше →
Total votes 104: ↑101 and ↓3+98
Comments8

Warp9 — еще одна реактивная js библиотека. На этот раз компонуемая и без утечек

Reading time12 min
Views18K
Статья устарела, актуальную информацию ищите на сайте Warp9'а



Существует множество реактивных и около-реактивных библиотек для создания графического интерфейса на js: Angular, Knockout, React, RxJS… Спрашивается, зачем писать еще одну. Оказывается, во всех них, помимо фатального недостатка, есть еще несколько.

Под катом анализ существующих библиотек и краткое описание warp9.
Total votes 33: ↑32 and ↓1+31
Comments41

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

Reading time7 min
Views51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Front-end Job Interview Questions


Репозиторий с самыми актуальными вопросами на собеседовании на позицию фронтенд разработчика. Проект от команды знаменитого HTML5 Boilerplate и набрал уже более 7500 звезд на GitHub.

ShareDrop



В «Америках» почему-то часто критикуют веб-стандарты и работу консорциума W3C в целом. Но не знаю как вас, а меня современные возможности очень даже радуют, особенно когда я вижу их реализацию. Встречайте P2P сервис для передачи файлов, основанный на технологии WebRTC и Firebase. Это веб аналог яблочного AirDrop. Лично я открыл оффлайновый учебник «Постройка.ру» по HTML лет 7-8 назад и по сравнению с тем, что мы видим сейчас — это небо и земля. Даже невзирая на объем и некоторую путаницу в спецификациях.

Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments15

Deploy приложения на RoR 4 с помощью Capistrano 3

Reading time16 min
Views63K

Представьте: Вы — веб-разработчик, который только недавно освоил Ruby on Rails. И тут Ваш первый проект подходит к стадии, когда его нужно выложить в интернет.
Вы, конечно, можете залить его на Heroku, но тамошние цены немного кусаются. Остается только купить VPS, настроить его и выложить проект туда.
«Что может быть проще? Найду какой-нибудь гайд, да следаю всё по нему» — подумаете Вы. Вот только гайдов, которые не просто выкладывают команды, но и объясняющие, что эти команды делают, — единицы, да и те используют уже устаревшую вторую версию Capistrano.

Поэтому я решил написать свой гайд, в котором постараюсь подробно рассмотреть:
  • Первичную настройку сервера
  • Установку и настройку nginx (с модулем PageSpeed), postgresql, redis
  • Установку rvm, rails
  • Настройку гема foreman для управления процессами Вашего приложения
  • Настройку сервера Unicorn
  • Настройку гема Capistrano (v3.1) для автоматизации деплоя


Я надеюсь, что этот гайд будет полезен не только новичкам, но и разработчикам со стажем.

Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments33

Как мы увеличили отзывчивость приложения

Reading time3 min
Views20K


Почти любое современное приложение не обходится без загрузки картинок из сети и мы, Surfingbird, не исключение. Однако, нельзя просто загружать картинки последовательно, потому что, если пользователь перемотает пару экранов, ему придётся ждать пока загрузятся предыдущие изображения, которые уже и не нужны.
Поэтому, для увеличения отзывчивости приложения и снижения времени ожидания пользователя, мы применили несколько приёмов, о которых и хотим сейчас рассказать.
Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments9

WWDC 2014: iOS 8 и OS X Yosemite (10.10)

Reading time3 min
Views242K
Здравствуйте!
Предлагаю в этом посте обсудить анонсированные новинки ПО от Apple, а именно iOS 8 и OS X Yosemite (10.10) на юбилейной 25-й конференции разработчиков.


Много картинок в порядке появления их в интернете
Total votes 162: ↑144 and ↓18+126
Comments604

Короткометражный мультфильм «Крепость»

Reading time1 min
Views54K


Создатель мультика, Дмитрий Федотов, о себе:
Я компьютерный художник пятнадцатилетней выдержки. Учился в художке, работал там то и там то. В данную минуту работаю инструктором компьютерной графики в компьютерной школе.

В общем я рисую в максе, фотошопе и двух десятках других программ. Занимаюсь как 2д так и 3д искусством. В последнее время ничего не вывешивал так как увлекся созданием КГ видео, а это очень трудоемкое дело. Пишу сценарии, рисую, отращиваю волосы, потом стригу их, в общем веду творческую деятельность.

На его сайте доступны некоторые стадии создания мульта.
Total votes 263: ↑236 and ↓27+209
Comments168

Алгоритм генерации QR-кода

Reading time18 min
Views195K


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

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

За основу этой статьи взят цикл статей «QR Code Demystified» Джейсона Брауна (Jason Brown). В этих статьях опущено много нюансов, что вызвало у меня некоторые проблемы. Все эти нюансы учтены и упомянуты здесь.

Читать дальше →
Total votes 106: ↑99 and ↓7+92
Comments23

PacktPub даёт возможность для получения бесплатных книг

Reading time1 min
Views23K

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

Для того, чтобы воспользоваться акцией, достаточно залогиниться в уже существующий или создать новый аккаунт, начиная с 28го и до 30го сентября.

Для справки — PacktLib — это онлайновая цифровая библиотека издательства Packt, занимающегося изданием преимущественно IT литературы.

Всем приятного чтения!

UPD: Пока что PacktPub и вправду лежит, главная работает, залогиниться возможности нет.

Ссылка на сайт издательства: www.packtpub.com
Total votes 24: ↑22 and ↓2+20
Comments26

Бесплатные электронные книги от Microsoft

Reading time1 min
Views32K
Eric Ligman, Директор по партнерским программам компании Microsoft, опубликовал в блоге ссылки на большую бесплатную коллекцию книг Microsoft по самым разным направлениям: SharePoint, Visual Studio, Windows Phone, Windows 8, Office 365, Office 2010, SQL Server 2012, Azure, Cloud, Lync, Dynamics CRM и т.д.
Читать дальше →
Total votes 58: ↑50 and ↓8+42
Comments21

Tethering и Reverse tethering

Reading time4 min
Views91K

Эта статья будет посвящена вариантам передачи интернет трафика на устройство под управлением платформы Android, а также способам передачи интернет трафика в обратном направлении (от Android устройства). Эти понятия принято называть Reverse tethering и Tethering соответственно. Если со вторым дела обстоят хорошо (есть как стандартные, так и 3rd Party решения), то о первом нужно говорить отдельно и осуществлять подробный разбор. Но, все по порядку.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments40

Информация для заказчиков или в защиту программистов

Reading time5 min
Views24K
Привет коллеги!

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

1. Уважаемые клиенты, Вы себе даже близко не представляете, сколько ваших скрытых проблем решают программисты (разработчики) при работе над вашими проектами, особенно это касается проектов «подобранных на дороге» (проекты на доработке).

2. Если программист говорит, что сделает за 2 дня, а делает за 10 дней — он имеет на это право! В работе программиста нет и не может быть нормированных процессов*. Поэтому свои претензии по срокам оставьте при себе.

3. Помните, что нанимая программиста, Вы платите только за исполнение. Придумывать за Вас программист не должен. Если программист придумывает за Вас — стоимость работы умножайте на 2-5 раз, если не было иных договорённостей.
Читать дальше →
Total votes 108: ↑23 and ↓85-62
Comments56

JavaScript метод insertAdjacentHTML и beforeend

Reading time1 min
Views23K
Перевод статьи «JavaScript insertAdjacentHTML and beforeend», David Walsh.

Если вы не знали: чертов DOM очень медленный. А по мере того, как наши сайты становятся все более динамичными и AJAX-использующими, нам становиться все важнее управлять DOM древом с наименьшим ущербом в производительности. Недавно я написал статью о DocumentFragment'ах. Это разумный подход к объединению списка дочерних элементов под неким «псевдо-элементом», для дальнейшего помещения в реальный DOM элемент. Еще один замечательный метод для работы с элементами insertAdjacentHTML: это способ добавлять элементы в родительский элемент не задевая других его потомков.
Читать дальше →
Total votes 60: ↑50 and ↓10+40
Comments18

Масштабирование наоборот: БЭМ-методология Яндекса на небольших проектах

Reading time21 min
Views62K
В разработке интерфейсов отдельные фреймворки уже не так важны: когда инструменты доступны, наша задача сводится к выбору нужных. Чтобы сделать правильный выбор, следует начать с общего подхода, с методологии. Большинство методологий, однако, разработаны крупными компаниями. Применимы ли они в маленьких проектах или для успешного использования их нужно переизобретать заново?

Скорее всего, вы уже знаете об одной из таких методологий, разработанной Яндексом, — БЭМ. БЭМ утверждает, что трёх сущностей (блоков, элементов и модификаторов) достаточно для написания HTML и CSS, задания структуры кода и компонентной структуры с последующим масштабированием проекта до самого высокого уровня.

Я проработал в Яндексе достаточно долго и видел, как эта методология работает на больших проектах. В Яндексе БЭМ используют для разработки CSS- и JavaScript-компонент, с помощью этой методологии также пишут шаблоны и задают зависимости между компонентами. Есть БЭМ-инструменты, поощряются различные эксперименты с кодом, исследования. В масштабах большой компании эти трудозатраты окупаются и дают Яндексу возможность быстро и качественно разрабатывать сотни сервисов одновременно.

Могут ли маленькие команды получить от БЭМ то же самое? Я совершенно не был в этом уверен. Всё же БЭМ — абстракция, которая поставляется вместе с инструментами и технологиями. Для маленькой компании польза от переключения на «полный стек» этих технологий — сомнительна, многие из инструментов изначально приспособлены под крупные и сложные задачи. Быть может, тогда полезной окажется сама идея, сама методология?

Изначально эта моя статья была опубликована в известном многим журнале Smashing Magazine. Но я решил, что и на Хабре она может быть интересна, ведь многие здесь занимаются собственными небольшими проектами.

Читать дальше →
Total votes 87: ↑77 and ↓10+67
Comments54

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →
Total votes 205: ↑176 and ↓29+147
Comments127

Как принимать платежи по кредитным картам — опыт Badoo

Reading time10 min
Views71K
Каждый год в мире появляются всё новые и новые способы оплаты. Но универсального, удобного для всех пользователей способа до сих пор нет. В 2008 году, когда мы только создавали систему биллинга для Badoo, нам казалось, что будущее за оплатой через SMS. Но, столкнувшись с реалиями разных стран, мы поняли, что это не так.

Предпочтения пользователей меняются в зависимости от страны и устройства, с которого они заходят на сайт. Очень близки к идеалу оказались банковские карты, популярность которых растет из года в год, в том числе и в России. Это не только один из самых распространенных способов оплаты, но и самый прибыльный из всех доступных на сайте Badoo, а их более 20.

Сегодня мы подробней расскажем о том, что осталось за рамками предыдущей статьи о биллинге: об обработке платежей посредством банковских карт; что надо знать и к чему готовиться, если вы только собираетесь их подключать; как увеличить их эффективность, если они у вас уже есть. В целом статья рассчитана на неподготовленных читателей, но и специалисты, возможно, найдут для себя кое-что интересное.
Читать дальше →
Total votes 88: ↑87 and ↓1+86
Comments60

64-битный Chrome вышел в релиз

Reading time1 min
Views99K
Ранее мы писали, что разработчики веб-браузера Google Chrome выпустили в бету долгожданную версию браузера с нативной поддержкой 64-битных версий Windows 7-8-8.1. Теперь же эта версия вышла в релиз и доступна для скачивания на странице загрузки Google Chrome (англоязычная версия сайта Google Chrome). Веб-страница загрузки браузера содержит специальную ссылку с текстом «Windows 64-bit», которая ведет на загрузку установщика новой версии. Как мы уже писали ранее, эта версия Chrome вводит дополнительные механизмы безопасности (security mitigations) для противодействия эксплойтам, в частности, поддержку появившегося в Windows 8 механизма стойкого ASLR. В браузере также переработаны механизмы работы с памятью, т. н. Partition Alloc, который вводит дополнительный уровень безопасности при работе с объектами в памяти виртуального адресного пространства процессов вкладок браузера.



Читать дальше →
Total votes 48: ↑38 and ↓10+28
Comments71

Information

Rating
Does not participate
Registered
Activity