Pull to refresh
25
0
Send message

Архитектура взаимодействия клиентской и серверной частей Web приложения

Reading time8 min
Views14K
Хотел рассказать, как я вижу устройство архитектуры взаимодействия серверной и клиентской частей. И хотел бы узнать спросить хабровчан, чем плоха или хорошо такая архитектура.

Читать дальше →
Total votes 34: ↑20 and ↓14+6
Comments29

Как раскрыть мощь HTML5 Canvas для игр

Reading time8 min
Views40K


Браузеры, поддерживающие HTML5, и платформа HTML5 для Windows 8 Metro сегодня становятся серьезными кандидатами для разработки современных игр.

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

Цель данной статьи — дать вам несколько подсказок, как выжать максимум мощности из HTML5 Canvas. Статья состоит из двух основных частей [вы читаете первую]. David Rousset скоро опубликует вторую часть.

В статье я буду показывать ключевые идеи на одном и том же примере — это эффект 2D-туннеля, который я написал для Coding4Fun-сессии на TechDays 2012 во Франции.
Читать дальше →
Total votes 57: ↑49 and ↓8+41
Comments88

Техническое задание на сайт

Reading time11 min
Views698K
UPD: Продолжение статьи с примером техзадания

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.

То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.

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

1. Обоснование необходимости ТЗ


А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.

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



Далее много букв
Total votes 212: ↑209 and ↓3+206
Comments141

Еще 5 гемов на все случаи жизни

Reading time3 min
Views3.1K
В продолжении топика о разных и полезных гемах, хочу рассказать еще о нескольких, которые делают мою (а потом, надеюсь, что и вашу) работу с RoR еще более приятной и удобной.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments5

Как придумать имя для нового продукта или проекта

Reading time3 min
Views5.2K
Нет, я не буду мусолить скучные теории. Уверен, всем нам для запуска нового продукта или сервиса достаточно самых простых и прозрачных критериев.

Вот, я и решил напомнить читателям критерии, сформулированные Гаем Кавасаки в его, уже превратившейся в классическую, книге The Art of the Start (или просто — «Стартап»).

За многие годы работы в корпоративном маркетинге я не видел более простых и работающих критериев.
Поэтому, именно они были использованы при разработке имени моего нынешнего стартапа.


Уверен, здесь ещё есть люди, которые не знакомы с этим подходом и он окажется им полезным.
Читать дальше →
Total votes 56: ↑41 and ↓15+26
Comments42

Float'омания: разъяснение как работает css свойство float

Reading time2 min
Views149K

После того как меня шестьдесят восьмой раз спросили почему блок с float отображается неправильно, я решил написать эту заметку, которая объяснила бы типичные ситуации, с которыми сталкивается начинающий верстальщик, а так же для того, чтобы в следующий раз просто дать ссылку на эту статью.
Читать дальше →
Total votes 132: ↑114 and ↓18+96
Comments100

Оптимизация JavaScript для ускорения загрузки веб-страниц

Reading time2 min
Views16K
Инженер из компании Google, автор трёх книг по веб-производительности и оптимизации, Стив Содерс (Steve Souders) опубликовал презентацию "JavaScript Perfomance" о том, какие методы нужно применять, чтобы скрипты меньше тормозили загрузку страниц.

По статистике WebPagetest, блокировка загрузки файлов .js на сайтах из Alexa Top 100 снижает среднее по медиане время загрузки страницы c 3,65 с до 2,487 с, то есть на 31%. Если вы видите медленную загрузку веб-страниц и хотите улучшить этот показатель, то, по мнению Стива Содерса, первым делом нужно посмотреть на JavaScript.
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments12

Исследование о мобильных интерфейсах

Reading time20 min
Views7.2K
Представляю вашему вниманию перевод статьи под названием "A Study of Trends in Mobile Design" от Alexander Dawson. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.

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



Цель этой статьи — рассказать вам о методах, которые используются на самых популярных сайтах для того, чтобы предоставить пользователям мобильных устройств удобное и (надеемся) полезное взаимодействие. Среди проанализированных сайтов много известных компаний, например Facebook и Amazon. Мы приготовили для вас настоящий экскурс в мир мобильного веб-дизайна, со статистикой и по-настоящему интересными открытиями.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments15

Практическое применение Backbone.View

Reading time4 min
Views28K

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

Задача


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


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

Скачиваем backbone.js, jquery, jquery ui, underscore.js и
Вперед
Total votes 41: ↑35 and ↓6+29
Comments36

Client-side кропалка на canvas

Reading time3 min
Views3.5K
На одном из проектов было необходимо сделать кропалку для загружаемых юзерами аватаров. Стандартные решения, такие как Jcrop, после выделения области отправляют на сервер координаты, и сам кроп изображения необходимо осуществлять уже на сервере. Тем временем, современные браузеры уже дошли до того состояния, когда подобные действия можно осуществлять сразу на клиенте. Это и подтолкнуло меня к написанию своей кропалки с использованием canvas, которая производила бы все действия на клиенте и отправляла готовое изображение в виде base64-строки на сервер. Помимо ускорения работы и разгрузки сервера, это так же позволит нам сразу сменить аватар пользователя на странице, без подгрузки его с сервера.

Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments13

Есть ли польза от кастомных ядер

Reading time4 min
Views43K
Многие слышали о различных оптимизированных и улучшенных ядрах, это — Zen Kernel и pf-kernel из известных мне. Кроме того, что они добавляют новые возможности (TuxOnIce, поддержка aufs), они могут улучшить производительность, благодаря улучшенному менеджеру задач (BFS) и планировщику (BFQ). В этом топике я хочу сравнить производительность pf-kernel со стандартными ядрами в Ubuntu и Arch Linux, а также описать процесс сборки и установки pf-kernel для Ubuntu. Тестировать Zen Kernel я не вижу особого смысла, т.к. во-первых, проект выглядит заброшенным, а во-вторых, набор патчей и там и там очень похожий.
Читать дальше →
Total votes 77: ↑71 and ↓6+65
Comments62

Рецепт приготовления Xubuntu, или нетбук для супруги

Reading time3 min
Views63K
С момента написания статьи вышли новые версии Xubuntu. Статья устарела. Писал, в основном, для собственной памяти и актуальность поддерживаю там где удобнее. Актуальный вариант и продолжение темы смотрите в блоге.

Читать дальше →
Total votes 125: ↑89 and ↓36+53
Comments78

has_many :through => Как быстро обратиться к join-объектам?

Reading time3 min
Views7.2K
Вы знаете, что когда требуется организовать many-to-many отношения между двумя моделями, прогрессивная часть человечества применяет join-таблицы и метод has_many с опцией :through => :join_model_name. Каждая связь между двумя ActiveRecord-объектами представляет собой ActiveRecord-объект.

И это чудесно, ибо в join-таблице можно насоздавать полезных (так называемых «extra») полей с дополнительной информацией о связях между объектами.

Вопрос в том, как красиво достучаться до этих extra атрибутов.

Все скринкасты и книжки, как назло, оперируют простыми примерами. Например, дружат между собой модели Article и Category. Само собой, для join-класса интуитивно напрашивается имя Categorization или ArticleCategorization.

has_many through

Соответственно, если у нас есть два объекта — article и category, и мы хотим найти AR-объект (или объекты), олицетворяющий связь между ними, то авторы книжек с чистым сердцем предлагают делать так:

relations = article.article_categorizations.find_by_category_id(category)


В жизни все сложнее. Модели нередко имеют длинные составные имена, либо между моделями такая связь, что придумывание имени для каждой join-модели превращается в маленькую пытку. Представим, что у нас модели не Article и Category, а UserGroup и Community, или Preorder и CustomerNotification. Как должна называться связующая модель? Возможны варианты.

Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments11

Оформление изображений на CSS3

Reading time8 min
Views69K
При использовании свойств box-shadow или border-radius непосредственно на изображении, браузеры могут некорректно отображать заданные нами CSS стили, из-за чего внешний вид блока будет существенно отличаться от задуманного. Однако если использовать изображение в качестве фона, то этой проблемы можно запросто избежать. Из статьи вы узнаете, как с помощью jQuery сделать идеально закругленные углы у изображений, а так же какие еще способы оформления возможны с помощью таких свойств как box-shadow, border-radius и transition.
Читать дальше →
Total votes 253: ↑245 and ↓8+237
Comments51

Daily Sales — агрегатор скидочных предложений от китайских интернет-магазинов

Reading time1 min
Views1.4K

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

Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments31

Марковские сети (MRF) на примере «умной» сегментации

Reading time4 min
Views12K

Введение


        Коллега Bo_bda рассказывает о фундаментальных проблемах обработки и анализа изображений. Что же, не могу остаться стороне и не поделиться своими опытом. Сегодня я вам расскажу о такой занимательной штуке, как марковские сети (markov random fields в зарубежной литературе). Данная математическая модель используется при решении практически всех задач обработки графики (тут вам и сегментация, и восстановление изображений, построение стереоизображений, различные вопросы в 3D и много чего еще).
        Внимание! Под катом тонны картинок (в блоге о графике-то, к чему бы это).
Читать дальше →
Total votes 68: ↑67 and ↓1+66
Comments13

Изготовление ATM-скиммеров с помощью 3D-печати

Reading time1 min
Views10K
Многие знают об устройстве ATM-скиммера, который можно встретить в первом попавшемся банкомате на улице. Обычно скиммер состоит из накладной клавиатуры или камеры, а также сканера магнитной ленты карточки. Раньше эти детали изготавливали вручную (см. каталог скиммеров), тщательно подгоняя размер устройства под размеры деталей конкретного банкомата.

Но сейчас преступники освоили более технологичные методы производства. Суд Южного Техаса опубликовал документы (1, 2) о процессе над четырьмя преступниками, которые похитили из банкоматов более $400 тыс., а для изготовления скиммеров вскладчину купили 3D-принтер. Таким образом, преступники смогли делать идеальные копии оригинальных приёмных устройств в банкомате, с очень высокой точностью.


3D-модель детали скиммера

Похоже, это не единичный случай. Ещё в прошлом году компания Materialise сообщала о поступлении заказа на изготовление детали скиммера (на иллюстрации) в онлайн-сервис 3D-печати.
Total votes 52: ↑43 and ↓9+34
Comments23

История интернет-магазина, ставшего мировым монополистом за $5 000

Reading time10 min
Views85K
Прочитав много литературы по истории бизнеса и наблюдая рост популярности Интернет-торговли, автору этих строк хотелось реализовать свои знания на практике. Искали подходящую тему для проекта. Необходимыми условиями были:

1) Вложение не более $10 000
2) Прибыль не менее $1 000 в месяц
3) Минимальная рутина

По первым двум пунктам все понятно. А вот по третьему пункту поясню. К тому моменту я уже работал в собственной компании (сфера финансов). Это был 2009 год. Последствия кризиса еще сильно влияли на основной бизнес и работы было непочатый край. Много времени отвлекать на сторонний бизнес автор не мог.
Подходящий случай подвернулся в октябре 2009 года.
Читать дальше →
Total votes 646: ↑641 and ↓5+636
Comments189

Пишем виджет, использующий API Яндекс.Метрики

Reading time10 min
Views13K
Не так давно Яндекс.Метрика анонсировала открытый API, с помощью которого можно получить доступ практически ко всем функциям Метрики из собственной программы.
Сегодня я хочу немного рассказать об использовании этого API и о том, как на его основе создать простой widget для Android-устройств.

Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments12

Избегаем распространенных ошибок в HTML5 разметке

Reading time8 min
Views120K
HTML5 Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
Читать дальше →
Total votes 145: ↑132 and ↓13+119
Comments92

Information

Rating
Does not participate
Location
Россия
Registered
Activity