Как стать автором
Обновить
98
0
Роман @voodee

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

Отправить сообщение

Курс по подготовке идиотов (цитаты из книги «Искусство оформления сайта»)

Время на прочтение2 мин
Количество просмотров8.7K
Я не знаю, видел ли кто-то из вас эту книгу, но это же жесть полнейшая.

image

— «Хвостик» после имени файла, отделяемый точкой, носит название расширения. Веб-дизайн, будучи синтетическим видом искусства, совмещает в себе:
> фотографии, которые существуют в виде файлов с расширением *.jpg (*.jpeg) или, значительно реже, *.gif (другие форматы графических файлов в Сети не применяются);

— Иногда полезно включить тэг [meta name=«generator» content="…"], чтобы показать, в какой программе сверстана страничка, поскольку это нередко помогает броузеру прочитать ту ахинею, которую накрутил визуальный редактор.

Читать дальше →
Всего голосов 307: ↑277 и ↓30+247
Комментарии333

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

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

Читать дальше →
Всего голосов 129: ↑114 и ↓15+99
Комментарии89

Кастомные социальные кнопки

Время на прочтение5 мин
Количество просмотров74K
Недавно участвовал в разработке одного проекта — фото конкурса. По задумке, рейтинг фото альбомов должен формироваться из суммы всех публикаций в социальных сетях: Facebook, Вконтакте, Twitter. Т.е. общий рейтинг фотоальбома расчитывается:
Рейтинг фотоальбома = кол-во «Share» в Facebook + кол-во «Сохранить» в Вконтакте + кол-во «Retweet» в Twitter

На макетах, вид кнопок несколько отличался от предоставляемых социальными сетями плагинов, формируемых функциями api. В частности вид счетчиков:
image
Помимо несоответствий с дизайном, каждый плагин формирует излишний хтмл код, а хотелось бы лаконичный.

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

Итак:
  • количество лайков будем получать от REST сервисов каждой социалки
  • кнопки рисуем свои и обрабатываем событие click

Читать дальше →
Всего голосов 99: ↑94 и ↓5+89
Комментарии58

Знакомьтесь, Интернет-магазин 2.0 — RIA

Время на прочтение3 мин
Количество просмотров2.1K
Как повысить скорость, юзабилити и user experience посетителей вашего интернет-магазина?
— Сделать его RIA! (Rich Internet Application)


Читать подробнее и посмотреть демку
Всего голосов 115: ↑103 и ↓12+91
Комментарии139

Браузерный зоопарк

Время на прочтение8 мин
Количество просмотров48K
image

Уважаемые Хабравчане! Хотел поделиться с Вами статьей своего сотрудника. Думаю, она будет полезной.

Hello world! Меня зовут Слава, я работаю верстальщиком в агентстве Coalla. Эта статья не о разжигании холивара и рассуждения о том, какой браузер лучше, как бы всем легко жилось без Internet Explorer’a, а мой недавний полезный опыт по установке всех необходимых браузеров и их версий на одну операционную систему, а именно на Microsoft Windows 7 Ultimate x64.
Читать дальше →
Всего голосов 210: ↑122 и ↓88+34
Комментарии236

Безопасность сайтов с лирическими отступлениями

Время на прочтение14 мин
Количество просмотров10K
Недавно я писал для одного заказчика обзорный документ по безопасности web приложений, после чего я подумал, что было бы неплохо выложить его на общее обозрение.
Статья написана для непрофессионалов, поэтому дабы сделать ее более интересной для притязательных пользователей хабра, я разбавил текст некоторыми случаями из жизни.
Читать дальше →
Всего голосов 80: ↑74 и ↓6+68
Комментарии41

Выбираем мультиплатформенный движок для разработки мобильных игр (часть 1)

Время на прочтение4 мин
Количество просмотров52K
imageРазработка мобильных приложений это весьма перспективное и выгодное занятие. Одним из самых интересных направлений являются игры. Однако, игры — это довольно сложные приложения, а учитывая, что на рынке существует как минимум две мобильные платформы, на которые стоит ориентироваться, сложность возрастает вдвойне. По этому, нам надо как то облегчить свой и без того нелегкий труд.
Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии66

Почтовые рассылки на базе DIVной верстки: это возможно!

Время на прочтение4 мин
Количество просмотров4.2K
Тема почтовых рассылок на хабре поднималась буквально недавно, но там не освещался один важдый момент: как обеспечить редактируемость контента этой рассылки после красивой и аккуратной верстки.

Ведь если сверстано на таблицах, с пустыми gif'ами для отступов — результат «монолитный», но не дай бог такое редактировать контент-менеджеру. Моментально всё поедет, да и не умеют нормально визивиги работать с таким ужасом.

Так можно ли подготовить нормальную, дивную верстку, которая легко поддерживается, удобно собирается в рассылках из частей, может редактироваться из визивига, и при этом будет хорошо смотреться в почте?
Читать дальше →
Всего голосов 54: ↑48 и ↓6+42
Комментарии16

Обработка ошибок и исключений в PHP

Время на прочтение6 мин
Количество просмотров38K
Эта «небольшая» статейка является развитием темы затронутой в этой статье.
Как известно, PHP зародился довольно давно и уже тогда возник вопрос, что делать с возникающими ошибками. Perl, который является несомненным прародителем PHP по умолчанию не имел какой-либо системы обработки ошибок. При возникновении любой ошибки сервер выбрасывал 500-ю ошибку и на этом все заканчивалось. Поэтому Warnings, Fatal Errors и Notices были настоящим прорывом в облегчении и без того нелегкого труда программиста. Однако время шло, механизмы PHP не менялись, а технологии, как известно, на месте стоять не любят.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии60

Правильная работа с исключениями в PHP

Время на прочтение4 мин
Количество просмотров67K
В предыдущей статье я предложил свести все «механизмы ошибок» к исключениям, поэтому логично будет объяснить, как правильно работать с исключениями в PHP.
Сначала поясню, почему я выбрал именно исключения, как механизм работы с ошибками:
  1. Исключения — это гибкий, расширяемый метод обработки ошибок;
  2. Это стандартизованный механизм – человеку, не работавшему с вашим кодом, не нужно будет читать мануал, чтобы понять, как обрабатывать ошибки. Ему достаточно знать, как работают исключения;
  3. С исключениями гораздо проще находить источник ошибок, так как всегда есть стек вызовов (trace).

Сразу скажу, что в этой статье я не открываю Америку. Описаны стандартные принципы работы с исключениями плюс некоторые особенности, налагаемые PHP. Полезно будет почитать новичкам, хотя может быть и опытные разработчики найдут что-нибудь новое для себя.
Несколько советов по работе с исключениями:
Всего голосов 75: ↑64 и ↓11+53
Комментарии137

DooPHP — молодой и очень высокопроизводительный PHP фреймворк!

Время на прочтение4 мин
Количество просмотров4.4K
DooPHP
Doo фреймворк — один из быстрейших, если не самый быстрый из доступных PHP фреймворков. Он помогает разработчикам на всех стадиях создания web 2.0 сайтов.
Вольный перевод вводного текста и диаграммы тестов производительности.
Нафига ещё один фреймворк?
Всего голосов 67: ↑51 и ↓16+35
Комментарии71

Создание простой MVC-системы на PHP 5

Время на прочтение18 мин
Количество просмотров208K

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии116

Webasyst: открытый PHP-фреймворк для создания бизнес-приложений

Время на прочтение2 мин
Количество просмотров2K
Хочу рассказать о проекте, который мы недавно выпустили.

Это открытый PHP-фреймворк для разработки бизнес-приложений: приложений, у которых есть бекенд, закрытый авторизацией, и к которым одновременно подключаются много пользователей с разграниченными правами доступа.



Фреймворк называется Webasyst, написан на PHP/MySQL/Smarty/jQuery, бесплатный, с открытым кодом (лицензия LGPL).

Немного подробнее под катом
Всего голосов 68: ↑55 и ↓13+42
Комментарии47

12 законов и правил, которые помогут в создании успешного дизайна

Время на прочтение8 мин
Количество просмотров73K
Люди в течение многих веков упорядочивали важные знания, которые теперь составляют основу правил дизайна. Это знания об общей природе положительных реакций человека. Дэвид Хьюм назвал такую природу «постоянными и универсальными принципами человеческого естества». Правила универсального дизайна не всегда могут быть мерилом всех вещей, но они могут помочь добиться успеха в различных сферах деятельности, включая коммуникации, производство, услуги, технику, искусство и природоохранное проектирование.

Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии14

Реализация нечеткого поиска

Время на прочтение6 мин
Количество просмотров42K


Если ваш веб проект так или иначе будет связан с поиском и предоставлением пользователям некоторых данных, то перед вами наверняка встанет задача реализации строки поиска. При этом, если в проекте по какой-либо причине не удастся использовать технологии умных сервисов как Google или Яндекс, то поиск частично или полностью придется реализовать самостоятельно. Одной из подзадач наверняка будет реализация нечеткого поиска, ведь пользователи часто ошибаются и иногда не знают точных терминов, названий или имен.

В данной статье описывается возможная реализация нечеткого поиска, которая была применена для поиска на сайте edatuda.ru.
Читать дальше →
Всего голосов 112: ↑105 и ↓7+98
Комментарии22

Самоубийственный разбор юзабилити «Хабрахабра»

Время на прочтение3 мин
Количество просмотров3K
Юбилею «Хабрахабра» посвящается.

Вступление


В этом опусе рассматриваются некоторые моменты, касающиеся юзабилити всеми нами любимого «Хабрахабра». Обзор затрагивает многие разделы сайта. Очень спорных моментов я, конечно же, старался избегать. «Хабрахабр» почти идеален, так сделаем же его ещё лучше! Без лишних слов, смотрим, что получилось, начнём с минусов.

Минусы


Нумерация индекса

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

Читать дальше →
Всего голосов 429: ↑311 и ↓118+193
Комментарии198

Введение в HTML5 History API

Время на прочтение4 мин
Количество просмотров239K
До появления HTML5 единственное, что мы не могли контролировать и управлять (без перезагрузки контента или хаков с location.hash) — это история одного таба. С появлением HTML5 history API все изменилось — теперь мы можем гулять по истории (раньше тоже могли), добавлять элементы в историю, реагировать на переходы по истории и другие полезности. В этой статье мы рассмотрим HTML5 History API и напишем простой пример, иллюстрирующий его возможности.

Основные понятия и синтаксис


History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в window.history. History имеет несколько методов, событий и свойств, которыми мы можем управлять из JavaScript. Каждая страница таба(Document object) представляет собой объект коллекции History. Каждый элемент истории состоит из URL и/или объекта состояния (state object), может иметь заголовок (title), Document object, данные форм, позиция скролла и другую информацию, связанную со страницей.

Основные методы объекта History:
  1. window.history.length: Количество записей в текущей сессии истории
  2. window.history.state: Возвращает текущий объект истории
  3. window.history.go(n): Метод, позволяющий гулять по истории. В качестве аргумента передается смещение, относительно текущей позиции. Если передан 0, то будет обновлена текущая страница. Если индекс выходит за пределы истории, то ничего не произойдет.
  4. window.history.back(): Метод, идентичный вызову go(-1)
  5. window.history.forward(): Метод, идентичный вызову go(1)
  6. window.history.pushState(data, title [, url]): Добавляет элемент истории.
  7. window.history.replaceState(data, title [, url]): Обновляет текущий элемент истории
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии22

cssHooks — расширяем множество CSS свойств

Время на прочтение5 мин
Количество просмотров3.2K
В этой статье я расскажу об объекте jQuery.cssHooks, который по умолчанию содержится в jQuery. Расширение этого объекта позволяет добавлять новые свойства или значения, прописываемые в методе .css(), которые изначально не поддерживаются теми или иными браузерами. Возможно, для многих наличие CSS хуков не является новостью, но для меня это стало небольшим открытием.
Для тех, кому лень дальше читать, привожу основную мысль. Допустим, вы хотите в jQuery добавить CSS свойство chuck-norris:
$.cssHooks.chuckNorris = {
	get: function(elem) {
		//проводим манипуляции с узлом elem, получаем value
		return value;
	},
	set: function(elem, value) {
		//проводим манипуляции с узлом elem, устанавливаем value
	}
}

$(el).css(‘chuck-norris’, Infinity);
//или $(el).css({‘chuck-norris’: Infinity});
alert($(el).css(‘chuck-norris’)); //Infinity


Далее будет подробно описана «модификация» свойства background-color для поддержки rgba в старых версиях IE и добавление нового, несуществующего в спецификации свойства background-alpha для удобной установки прозрачности фонового цвета. В IE прозрачность цвета будет реализована с помощью использования свойства filter, добавляя элементу градиент, состоящий из двух одинаковых цветов.
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии19

TOP-100 ведущих веб-студий России-2011

Время на прочтение1 мин
Количество просмотров725
Привет, Хабр!

Мы опубликовали результаты шестого ежегодного рейтинга «Top-100 ведущих веб-студий России Тэглайн-2011». Респондентов просили оценивать компании по совокупности показателей.

Теперь первая десятка рейтинга выглядит следующим образом:

image

Читать дальше →
Всего голосов 91: ↑63 и ↓28+35
Комментарии95

Оптимизация сайта. Технологический фундамент. Часть 2

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

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

Итак, помимо внешних факторов вашего сайта, видимых, что называется, невооруженным глазом (структура, тексты, дизайн) существует целый ряд технических мероприятий, которые нужно проделать с сайтом для его правильной настройки для лучшей индексации поисковиками. Перечислим наиболее важные из них.
Читать дальше →
Всего голосов 76: ↑51 и ↓25+26
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Ростов-на-Дону, Ростовская обл., Россия
Зарегистрирован
Активность