Pull to refresh
0
0
PetrW @PetrW

User

Send message

Верстка на HTML5

Reading time3 min
Views65K
html5

Несмотря на то, что стандарт HTML5 официально не утвержден, использовать его можно уже сейчас. Большинство браузеров уже понимают новые структурные элементы и для его использования достаточно добавить новый doctype.
Читать дальше →

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

Reading time7 min
Views83K
Надеюсь, что данный материал будет кому-нибудь полезен.

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

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →

Ломаем капчу

Reading time3 min
Views80K
Гуляя по просторам интернета, зашёл на один высокопосещаемый древний сайт рунета. Для того, чтобы скачать файлик с этого сайта, нужно угадать вот такую капчу:
image
В очередной раз видя картинку с цифрами — решился. В голове уже давно проносились мысли, сломать какую-нибудь капчу :)

Ставлю себе задачу: Написать скрипт, который будет расшифровывать показанную капчу и выплевывать драгоценные циферки.

Название сайта специально не привожу — сами догадаетесь :)

Итак, поехали!

Читать дальше →

40 советов по оптимизации вашего PHP-кода

Reading time4 min
Views57K
Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.
  2. echo быстрее, чем print.
  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.
  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.
  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.
  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.
  7. require_once дорого обходится.
  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.
  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().
  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

Читать дальше →

Серия 50+ советов по оптимизации PHP кода. «За» и «против» такой оптимизации. Первые 10 советов.

Reading time6 min
Views21K
Это перевод первых 10-ти советов статьи по оптимизации PHP кода. На хабре есть перевод более старой версии статьи — 40 советов по оптимизации вашего PHP-кода

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

Пишу по частям, иначе получится очень много материала сразу.

Это моя первая статья на хабре, надеюсь она получилась интересной.

Читать дальше →

Бэкапим без расходов

Reading time9 min
Views4.5K
image
Бэкапы — это вечная проблема: то объемы данных сумасшедшие, то вообще забываешь про них. В своем предыдущем проекте dvice.ru (он пока закрыт, так что без ссылки) я допустил досадную ошибку в самом начале его запуска. Я написал небольшой крон, который в 12 часов ночи удалял всех неактивированных пользователей, зарегистрировавшихся больше 24 часов назад. Но я ошибся в запросе и потерял данные пользователей, которые зарегистрировались до первого запуска этого запроса. Слава Богу, у меня были все данные в сессиях, поэтому я восстановил всех тех, кто логинился и ставил галку на чекбоксе — запомнить меня. Обидно и глупо, но на ошибках учатся. Поэтому перед запуском своего крайнего проекта — inwhite.ru, я сделал систему бэкапов.

Бэкапы делались и копились, старые удалялись, и все было отлично. Пока внезапно я не понял, что страдаю полной фигней. Бэкапы-то я делаю, а вот забирать — не забираю. Объемы данных, лежащих на моем VPS, не такие большие, но по почте тоже особо не наотправляешься. Покупать еще один VPS и складывать туда все по FTP/SVN/CVS/SSH не особо хочется, хотя тоже вариант интересный.

До вчерашнего дня я был озадачен мыслью: а как все же забирать эти данные? И вот вечером меня осенило.
Читать дальше →

Средства создания горячих BackUp`ов MySQL

Reading time3 min
Views33K
Доброго времени суток. Недавно я задался вопросом о том, как делать горячие BackUp`ы MySQL-серверов — ниже компиляция из прочитанного. Заранее хочу сказать, что данный пост является скорее большой заметкой, чем полноценной статьёй. Я намеренно уклоняюсь от описания синтаксиса — на эту тему уже немало написано — я же ставил перед собой другую цель — составить краткий обзор основных методов с характерными особенностями:
далее

Представляем Google Wave API: а что можно написать для Wave?

Reading time2 min
Views1.5K
Дуве Осинга, инженер, команда Google Wave API
Алексей Шелестенко, маркетинг Google Россия

По горячим следам анонсированного недавно продукта Google Wave, спешим обрадовать (отчасти) всех заинтересовавшихся программистов и веб-девелоперов: у Google Wave появился свой блог для девелоперов. Там можно узнать о технических аспектах Google Wave, особенно о Google Wave API и Google Wave Federation Protocol. Сейчас мы кратко расскажем о тех Google Wave API, которые мы анонсировали во время девелоперского релиза Google Wave на конференции Google I/O.

Google Wave — это новый инструмент общения, позволяющий людям совместно работать в сети более эффективно. Если вы ещё не видели демонстрацию продукта, сходите на wave.google.com и посмотрите, что может Google Wave.

Есть два варианта Google Wave API: Embed и Extensions. Embed позволяет вам встраивать потоки общения из Wave в ваш собственный сайт, пользуясь простым JavaScript API. Например, встроив поток Wave на сайт, вы поспособствуете более активному общению посетителей. Extensions позволяет писать программы, называемые Роботами или Гаджетами, которые обеспечат богатую функциональность непосредственно внутри веб-клиента Google Wave.

Роботы — это автоматические участники, написанные на стороне сервера и выполняющие задачи от имени пользователей, включая синхронизацию данных с другими сервисами. На данный момент Роботы хостятся на Google App Engine, а библиотеки клиентов имеются на языке Java и Python. Мы работаем над более низкоуровневым API Роботов, которое может храниться на любом сервере в сети. Вот пример приложения, которое можно построить — Робот, которого мы ласково зовём "Tweety". Он облегчает использование Twitter внутри Google Wave.


Гаджеты, о которых вы могли знать из OpenSocial, являются программами на стороне клиента, позволяющими писать полноценные приложения внутри Google Wave. Что интересно, мы создали расширение для API гаджетов OpenSocial, позволяющее воспользоваться функцией совместной работы в Wave при написании гаджета. Например, посмотрите на скриншот гаджета с мультиплееровой игрой Судоку (образец доступен на code.google.com):


Если вы хотите узнать больше о Google Wave API, запросите доступ к sandbox, посмотрите на примеры кода и присоединяйтесь к нам на форуме Google Wave API.

Мы уверены, что Google Wave интересен и российским веб-разработчикам. Если у вас есть мысли и соображения по поводу Google Wave, Google Wave API или Роботам и Гаджетам, которые можно написать для этой платформы, оставляйте комментарии!

Раменский (группа Тэглайн) о рынке web-разработок

Reading time1 min
Views799
imageИнтервью Алексея Раменского (руководитель экспертной группы Тэглайн), прошедшее на конференции «Сайт 2009». Алексей рассказал про объем рынка, про тенденции развития, ситуации и проблемах отрасли в связи с кризисом.

Помимо этого, еще ряд интересных интервью с конференции, которая стала первой в России, посвященной отрасли разработки сайтов:

EXPLAIN — Самая мощная команда MySQL

Reading time2 min
Views160K
Самая мощная команда в MySQL – это EXPLAIN. EXPLAIN может в точности рассказать вам, что происходит, когда вы выполняете запрос. Эта информация позволит вам обнаружить медленные запросы и сократить время, затрачиваемое на обработку запроса, что впоследствии может значительно ускорить работу вашего приложения.
Читать дальше →

Zend framework — туториал: авторизация

Reading time6 min
Views9.3K
Знаю что в сети много уже таких туториалов, но я сам так же знаю что ZF очень труден на старте, но потом… все ясно и легко.
Хотелось бы облегчить эту первую стадию тем кто еще только в начале пути.

Для авторизации нам потребуется конечно же готовая таблица пользователей — минимум два поля, userName и passwordMD5.
passwordMD5 — сразу понятно что хранит пароль в неявном виде, что бы его кто то не украл в один момент.

1. Делаем форму логина.

Читать дальше →

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

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

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

Для тех, кто с ними не знаком (как я был) — напомню:
Читать дальше →

Антиспам «отправь СМС»

Reading time2 min
Views2.4K
Всем привет!
Около месяца назад я придумал антиспам-сервис (см. этот топик). Напомню, он посвящен сообщениям типа «отправь СМС». Суть — нужно указать, что просят отправить и куда, при большом количестве сообщений спамер не получит денег, так как выплаты происходят с задержкой.
Что изменилось?

Как вовремя узнать, что ваш сервер не работает?

Reading time3 min
Views21K
Случается, что сайты перестают работать. Причины могут быть самые разные: в датацентре «упал» канал, сервер вырубился, кто-то что-то намудрил с базой или файлами на сервере, сисадмин неудачно обновил ПО или переносил аккаунты. Или кое-кто забыл оплатить хостинг.

В большинстве случаев такая ситуация нежелательна, а устранить ее надо как можно скорее. Для этого нужно как можно скорее узнать о случившемся. Но как? Для себя и для наших клиентов мы используем сервисы мониторинга сайтов. О них я сегодня и расскажу.
Читать дальше →

Приложение для скачивания музыки на базе ВКонтакте API

Reading time1 min
Views1.2K
image
Хочу представить вам наше скромное, но непременно полезное приложение, позволяющее скачивать композиции из огромной музыкальной базы сайта VKontakte.ru. Основное его преимущество в том, что не нужно ставить никаких дополнительных программ, плагинов к браузеру, либо посещать далеко не всегда работающие сайты — просто добавить flash-приложение к себе на страницу и пользоваться. Можно выбрать как свои композиции, так и композиции друзей, причем, в отличие от скачивания по прямой ссылке, файлы сразу получают удобные имена из названия исполнителя/композиции.

Приложение стало возможно благодаря недавно обновленному API. И даже по тому небольшому количеству, использующих API приложений, уже можно судить о его большой перспективности.

Update: Существовала опасность, что приложение заблокируют — так оно и стало. Но ничего, для всех желающих чуть позже мы выложим swf приложения, что позволит поставить его как свое собственное приложение. Лично я продолжаю им пользоваться )

PHP 5.3: встречаем анонимные функции

Level of difficultyMedium
Reading time3 min
Views3.8K
Итак в феврале этого года была выпущена новая стабильная версия PHP — PHP 5.3.0. Эта версия включает множество новых функций и улучшений, в том числе:
Читать дальше →

Не используйте @import

Reading time3 min
Views62K
В данной статье автор Steve Souders приводит наглядные доказательства, почему не стоит использовать import для загрузки стилей в документ.

LINK vs. import


Существует 2 способа загрузки файлов стилей. Использовать тег LINK:
<link rel='stylesheet' href='a.css'>

Или импортировать файлы с помощью import:
<style>
@import url('a.css');
</style>

Я предпочитаю использовать LINK для удобства, т.к. вы должны помнить, что import нужно размещать всегда в самом верху блока стилей, в противном случае они не импортируются.
Смотрим доказательства

Три с половиной уровня структурности проекта

Reading time3 min
Views3K
Недавно я для себя открыл простую модель, которая обьясняет, какие инструменты нужны менеджеру и команде для ведения и управления проектами.

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

Читать дальше →

Стенсилы для проектирования интерфейсов

Reading time2 min
Views19K
Продолжая выкладывать на блоге Amazing Development всё, что может понадобиться компаниям или специалистам начать заниматься проектированием и работами над повышением юзабилити своих продуктов и проектов, опубликовал коллекцию стенсилов. Стенсилы – примитивы используемые для графического представления чего-либо. Ниже представлены стенсилы для программ Microsoft Visio, Adobe InDesign и OmniGraffle. Если Вы знаете ссылки на другие стенсилы, которые можно использовать в проектировании, то сообщите о них в комментариях.

Microsoft Visio


Стенсилы Nick Finck


Читать дальше →

Information

Rating
Does not participate
Registered
Activity