Как стать автором
Обновить
173
0
Денис @pixxxel

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

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

Шрифты, общие для всех (актуальных) версий Windows, и их Mac-эквиваленты

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

Введение


В данном списке перечислены шрифты, общие для всех актуальных на данный момент операционных систем Windows (фактически начиная с Windows 98), и их эквиваленты в Mac OS. Такие шрифты иногда называют «безопасными шрифтами для браузеров» (browser safe fonts). Это небольшой справочник, которым я пользуюсь, когда делаю Web-страницы и думаю, что он будет полезен и Вам.
Читать дальше →
Всего голосов 69: ↑58 и ↓11+47
Комментарии24

Siege — утилита для нагрузочного тестирования веб-серверов

Время на прочтение7 мин
Количество просмотров80K
Надеюсь, что данный материал будет кому-нибудь полезен.

Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии67

Велорама — всё о велосипедах

Время на прочтение4 мин
Количество просмотров2.3K
Логотип Велорамы
Привет! Один очень хороший человек, лютый велосипедист и просто отличный дизайнер, попросил меня представить проект, в разработку которого, он и команда разработчиков вложили всю свою душу и почти год личного времени. К сожалению сейчас у него недостаточно кармы, чтобы самому напиасть пост в разделе, поэтому все плюсы за проект, мужество и силу воли — только ему: diamond.

Предисловие


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

Дизайн


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

Велосипедист из пластилина
Для вдохновления из студийного пластилина был слеплен локальный талисман проекта — довольно амбициозный целеустремлённый и перспективный велогонщик на шоссейном велосипеде. Состояние его велосипеда довольно плачевное, но всё-таки проехать марафон "Париж — Брест — Париж" — дело нелёгкое!
Читать дальше →
Всего голосов 165: ↑157 и ↓8+149
Комментарии173

38 статей о создании закругленных углов на сайтах

Время на прочтение4 мин
Количество просмотров12K
Моя статья на Временно.нет
38 статей о создании закругленных углов на сайтах
Часто сталкиваешься с необходимостью создания блоков с круглыми краями. Задавшись вопросом как вообще можно решить поставленную задачу, сделал подборку интересных статей и уроков на данную тему.

Здесь представлен обзор 38 статей, разбитых на 4 категории по способам реализации.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии79

Оптимизация PHPShop

Время на прочтение2 мин
Количество просмотров2.9K
Так уж случилось, что один из наших клиентов заказал нам добавить в его интернет магазин несколько десятков тысяч товаров. Магазин у него работал на небезызвестном PHPShop(версия 2.1.8). До этого момента, я с этим «чудом» не встречался. После добавления первых 5000 товаров магазин слег и мог показывать только белую страницу.  Тех поддержка отвечала что это все из-за хостера(MasterHost). Я им поверил и решил опробовать все на локальном веб-сервере. Магазин показывал ту же картину. Причем в списке задач отображалось, что Apache «съедает» 200 Мб оперативной памяти. Пришлось лезть во внутренности…
Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии84

10 рекомендаций по html-верстке электронных писем

Время на прочтение4 мин
Количество просмотров106K
Рекомендация первая: забудьте про блочную верстку. Весь лэйаут должен быть на таблицах. При этом, без крайней необходимости — их тоже лучше не использовать. Также следует выкинуть из головы представления о семантике, сокращенных css-правилах, валидации, плавающих блоках — и прочее. Самый распространенный в РФ почтовый сервис на данный момент (mail.ru) вообще не понимает стили (css). Любые тэги/атрибуты style заменяются на xstyle и не работают. Вообще все.

Так что, фактически, при вёрстке html для почтовой рассылки надо мысленно переместиться в 90-ые годы прошлого века и смело использовать все распространенные приёмы того времени.

Для тех, кто с ними не знаком (как я был) — напомню:
Читать дальше →
Всего голосов 124: ↑111 и ↓13+98
Комментарии104

Начало пути — Часть 6. Основы сведения и мастеринга.

Время на прочтение6 мин
Количество просмотров236K
Вот, с грехом пополам, мы и добрались до финальной статьи. Она будет про сведение и мастеринг. Первым делом поясню чем сведение отличается от мастеринга, расскажу немного про такую штуку как SideChain и еще парочку трюков. В конце — небольшая таблица, которая до сих пор помогает мне при эквализации.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии62

JS Charts — генератор графиков и схем.

Время на прочтение1 мин
Количество просмотров15K
image
JS Charts является бесплатным JavaScript-генератором графиков и схем, который требует минимум знаний программирования. С JS Charts рисование диаграмм становится простой и легкой задачей. Он не требует никаких дополнительных плагинов и серверных модулей. Просто подключите скрипты, подготовьте данные для схемы в XML или массиве JavaScript и ваша таблица готова.
Читать дальше →
Всего голосов 71: ↑66 и ↓5+61
Комментарии33

Проверка файла на наличие / существование

Время на прочтение2 мин
Количество просмотров88K
Порой мы отображаем на сайтах контент с других ресурсов: картинки или фавиконы. Некоторе браузеры просто оставят пустое место (Firefox), другие же отобразят уродский прямоугольник, явно указывая, что чего-то не хватает (IE). Как же можно средствами PHP проверить существование файла.

Есть функция file_exists(), но она хороша только для файлов в пределах нашей файловой системы, а с удаленным сервером не пройдет.

Есть вариант открывать файл на чтение и в случие ошибки констатировать факт, что файла не существует:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";

// пробуем открыть файл для чтения
if (@fopen($url, "r")) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


Однако такой прием занимает достаточно много времени.

Есть вариант еще лучше — использовать функцию get_headers():
она делает запрос к файлу и получает все заголовки с ответом примерно в таком массиве
Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)


Как мы видим, в нулевом элементе есть код ответа, 200 значит, что файл существует, и мы спокойно можем получить к нему доступ.
Вот код, который проверит существование файла.

<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";
$Headers = @get_headers($url);
// проверяем ли ответ от сервера с кодом 200 - ОК
//if(preg_match("|200|", $Headers[0])) { // - немного дольше :)
if(strpos('200', $Headers[0])) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


Теперь сравним по времени два метода с существующей favicon и с несуществующей:
при несуществующем файле второй метод (get_headers) выигрывает на две сотые секунды.
при существующем файле оба метода показали примерно одинаковое время.
Всего голосов 110: ↑64 и ↓46+18
Комментарии79

Памятка дизайнеру сайтов

Время на прочтение10 мин
Количество просмотров244K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

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

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

Читать дальше →
Всего голосов 453: ↑444 и ↓9+435
Комментарии231

Отправка комментариев пользователей сайта вам на Jabbеr

Время на прочтение1 мин
Количество просмотров5.9K
Во время шумихи с аськой и предложениями перехода на jabber я решил разобраться: что же такое джаббер и как он мне может пригодиться кроме прямого общения.

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

Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем).
Итак, на сайте протокола xmpp (jabber) xmpp.org/software/libraries.shtml я скачал баблиотеку xmpphp (она мне понравилось больше всех своей простотой в понимании) и закачал ее на свой хост.

В функцию добавления комментария на сайте я добавил строки:

include ‘XMPPHP/XMPP.php’;
$conn = new XMPPHP_XMPP('джаберовский сервер', 5222, 'логин', 'пароль', 'xmpphp', 'jabber.ru', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
try
{
	$conn->connect();
	$conn->processUntil('session_start');
	$conn->presence();
	$conn->message('ваш джаббер', 'текст сообщения');
	$conn->disconnect();
}
catch(XMPPHP_Exception $e)
{
	die($e->getMessage());
}


Где: джабберовский сервер — сервер через который отправляются сообщения (я указал тот же на который и приходят сообщения).
Внимание! Текст сообщения должен быть с кодировке UTF-8.

Вот собственно и все…

P.S. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.
Всего голосов 171: ↑158 и ↓13+145
Комментарии69

Subversion: cлияние переименований файлов

Время на прочтение3 мин
Количество просмотров3.4K
— Зачем ты, Белка, летишь за мной, Кабаном?
— Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
— Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
— Кабан, ты дятел! Как понял? Приём.
— Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
— Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
Виктор Шендерович

Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии21

Большие бесплатные фотографии теперь можно использовать в корыстных целях

Время на прочтение1 мин
Количество просмотров1.6K
Бесплатный фотосток, с картинками большого разрешения, которые безнаказанно и абсолютно легально можно использовать в коммерческих целях, это очень круто, согласитесь.

Мы с моей командой, наконец, запустили такую штуку — photl.com
Все в стадии бэта, ну вы в курсе (;

Спасибо фотографам за гигабайты фотографий, технологу за верстку и скрипты, толпе переводчиков, заказчикам за мотивацию пряником, контент-менеджеру за иероглифы, системному администратору, флэшеру, суперпрограммисту ewgenij и немножко мне за координацию проекта и дизайн.

UPD: Хабраэффект. На некоторое время закрываемся, сорри. Кому не терпится, можно посмотреть скриншоты тут

UPD1: Идет доработка правовой информации. Будут учтены некоторые комменты. Скоро откроемся.

UPD2: На photl.com сделали форму для почты для тех, кто хочет узнать, как только откроемся.

UPD3: Снова открыт для всех!
Всего голосов 88: ↑68 и ↓20+48
Комментарии167

Файловый менеджер для FCKeditor — FCKfsys 2.0 (PHP)

Время на прочтение2 мин
Количество просмотров2.6K
Эта статья продолжение первого варианта файлового менеджера.

FCKfsys — файловый менеджер для визуального редактора для web FCKeditor. Мне в FCKeditor все нравится, кроме файлового менеджера. Так что надо както исправлять это самому.
Подробная информация о плагине на моем сайте и там же можете посмотреть пример работы.

Выглядит файловый менеджер с превьюшками:

Вид FCKfsys 2.0

UPD: Доработки сделаны, теперь надо над интерфейсом поработать. По моему ориентир должен быть на Windows-проводник, чтобы было привычно. То есть немного причесать надо.
Читать дальше →
Всего голосов 57: ↑48 и ↓9+39
Комментарии51

Отправить POST через file_get_contents()

Время на прочтение3 мин
Количество просмотров86K
Чтобы получить содержимое веб-страницы все с удовольствием используют file_get_contents(), например file_get_contents('http://www.habrahabr.ru/'). Но я уже давно наблюдаю, что, как дело доходит до того, чтобы отправить POST, разработчики используют либо CURL, либо открывают сокеты. Я не считаю, что это плохо или что не надо так делать, просто для решения простых задач можно использовать простые решения.

Я и сам так раньше делал, пока на наткнулся на понятие контекстов потоковых операций в PHP. Контекст позволяет передать дополнительные параметры потоковому обработчику. Для http например, можно сконфигурировать POST-запрос или передать дополнительные заголовки.

file_get_contents() принимает 3 параметром «контекст», который собственно и конфигурирует сам запрос.
Ниже пример такого запроса или RTFM

Читать дальше →
Всего голосов 97: ↑89 и ↓8+81
Комментарии71

MySQL и JOINы

Время на прочтение6 мин
Количество просмотров147K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии67

Иерархические (рекурсивные) запросы

Время на прочтение10 мин
Количество просмотров511K
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

Читать дальше →
Всего голосов 108: ↑103 и ↓5+98
Комментарии159

14 бесплатных Web-приложений для совместной работы

Время на прочтение4 мин
Количество просмотров77K
«Люди не являются островами в открытом океане». Это высказывание успешно можно использовать особенно в том случае, если вы — дизайнер или разработчик. Несмотря на существование платных средств, как Basecamp и Zimbra, вы можете использовать ещё и бесплатные, которые, пожалуй, не уступают платным (а порой и обгоняют их).

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

Читать дальше →
Всего голосов 129: ↑123 и ↓6+117
Комментарии59

120 dpi и шрифты в em

Время на прочтение8 мин
Количество просмотров12K
шрифт в em

Шрифты в Em/% хороши всем — возможностью пользователей IE увеличивать кегль, заботой о пользователях, что предпочитают увеличивать размер шрифта браузера по-умолчанию, чтоб лучше видеть текст, да и просто являются нормой для профессиональных верстальщиков.

Минусы: … их вроде как нет, но!
А что если у пользователя разрешение экрана выставлено не в стандартное 96 dpi, а в 120?
Сайт с увеличенными шрифтами смотрится уже не так красиво, как нарисовал дизайнер — ведь масштабируются только шрифты, а не весь сайт! А разрешение 120dpi становится всё популярней, особенно на ноутбуках! Что же делать? Возвращаться к px?

Нет!
как сделать сайт одинаковым на 96 dpi и 120
Всего голосов 157: ↑150 и ↓7+143
Комментарии65

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность