Как стать автором
Обновить
196
0
Сергей Широков @kurokikaze

Frontent-разработчик

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

Кропотливая оптимизация PHP-приложений (рассматриваю PHP5, но большинство справедливо и для 4-й ветки)

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

Когда во сне снится «ой а если сервера не хватит...»


Для начала, Доброй Ночи. Пишу что-то полезное вроде впервые (если не считать разного рода полу-тестов в моём блоге). Человек я допытливый до жути, неожиданно в голову пришло, что могу помочь сэкономить кому-то много времени ;).


танцуем с бубном
Всего голосов 99: ↑95 и ↓4+91
Комментарии147

Прогрессивные технологии, как способ выжать из сервера максимум

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

Вступление


Просто красивый rrdtool =)
Забавно, но когда программист разрабатывает какой-либо продукт, он редко задумывается над вопросом могут ли на одну кнопку в один момент времени нажать одновременно 2000 человек. А зря. Оказывается могут. Как ни странно но большинство движков, написанных такими программистами, очень плохо ведут себя под большими нагрузками. Кто бы подумал, а всего один лишний INSERT, не проставленный index, или кривая рекурсивная функция могут поднять load averages чуть ли не на порядок.

В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
читать дальше
Всего голосов 318: ↑314 и ↓4+310
Комментарии184

Контрастная схема Eclipse/pyDev под TextMate

Время на прочтение4 мин
Количество просмотров6.6K
Проблема:
при запуске Эклипсы на экране с высоким разрешением — ничего не видно, а внимание отвлекается на непонятные элементы интерфейса.
Цветовая раскраска для разработки под Python кажется неинформативной.
Особенно актуально для людей с пониженным зрением, работающих без очков на мониторах с разрешением 1680х1050 и выше.

Задача:
1) найти скин, который бы визуально увеличивал значимые части интерфейса (названия табов, элементы списков)
2) а также визуально уменьшал рюшечки, не несущие смысловой нагрузки
3) подобрать броские и понятные цвета и шрифты редактора
4) желательно чтобы всё вместе это напоминало (хотя бы отдаленно) редактор textmate

На решение была потрачена пара часов перебора различных вариантов методом тыка.
Описание поможет вам сэкономить эти несколько часов :)

Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии65

Улыбнитесь, Вас снимает скрытая камера!

Время на прочтение4 мин
Количество просмотров20K
image
По долгу службы довелось мне тесно сотрудничать в области разного околокомпьютерного оборудования с одной крупной сетью супермаркетов. Чуть поменьше, чем «Metro» или «Wallmart», но тоже немаленькая и международная. На территории магазина продается много электроники, ювелирных изделий, есть отделы «элитных товаров» — к безопасности подходят серъёзно. За пару недель я неплохо познакомился с админами их сети и мне показали святую святых — зал видеонаблюдения службы безопасности. Собственно говоря, о том как, чем и зачем магазины такого уровня наблюдают за своими покупателями и будет статья.
Читать дальше →
Всего голосов 95: ↑95 и ↓0+95
Комментарии132

Изобретаем технологию: опыт соединения нескольких open-source проектов

Время на прочтение6 мин
Количество просмотров1.9K
Я хотел бы поделиться опытом создания приложения, или точнее технологии, основанной на нескольких open-source проектах. Это нечто вроде веб-сервера с поддержкой асинхронных сообщений и возможностью исполнения скриптов на JavaScript.

Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии44

Делаем Liquid Resize своими руками

Время на прочтение12 мин
Количество просмотров16K
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →
Всего голосов 230: ↑227 и ↓3+224
Комментарии125

Про правильную посадку в кресле

Время на прочтение5 мин
Количество просмотров71K
Навеяно постами про подлокотники. Это сборник разных советов, которые я потихонечку собирал в записную книжку, когда впервые столкнулся с проблемами, которые может вызвать неправильная посадка в компьютерном/водительском кресле и дополнял собственным опытом и знаниями.

Что есть правильная посадка в кресле?

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

Пара слов о физиологии: главная задача вашего организма — это обеспечение подвижности и работоспособности «здесь и сейчас». Почти всегда — с жертвами в будущем. Что же происходит, когда мы сидим в кресле? Современный офисный человек физически плохо развит (это правда), поэтому долгая напряженная поза (голова вытянута вперед, глаза вглядываются в монитор, спина скруглена и перекошена вбок, потому что одна рука лежит безвольно, а вторая активно шевелит мышкой) приводит к тому, что его спинные мышцы не могут удерживать правильное положение позвоночника больше чем полтора-два часа — они просто расслабляются и отпускают связочно-суставный аппарат. Чтобы не произошло травмы — организм включает экстренный режим сохранения подвижности и перераспределяет вертикальную нагрузку так, чтобы компенсировать ее изгибом самого позвоночника и натяжение связок и мелких мышц.

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

Решение — правильная поза. Как ее достичь? Причем совершенно штатными средствами, без адских подлокотников или кресел за полторы тысячи евро?

Читать дальше →
Всего голосов 119: ↑112 и ↓7+105
Комментарии89

Величие шрифтов

Время на прочтение1 мин
Количество просмотров1.5K
Потрясающе видео «Mankind Is No Island», смонтированное из снимков шрифтов и текстов, снятых на мобильный телефон на улицах Сиднея и Нью-Йорка, получило награду на австралийском кинофестивале Tropfest NY 2008.


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

Читать дальше →
Всего голосов 71: ↑61 и ↓10+51
Комментарии16

Сила и красота декораторов

Время на прочтение5 мин
Количество просмотров83K
Одним из самых сложных для понимания и осознания элементов языка является декоратор, хотя по сути это очень простая вещь, доступная для понимания даже начинающему программисту. Новых Эверестов я не открываю, а лишь предлагаю краткий обзор возможностей и несколько типичных примеров использования. Этакий короткий экскурс в метапрограммирование на питоне.

Upd 1: изменил несколько категоричное утверждение о несходстве паттерна Декоратор и одноимённой языковой конструкции на более мягкое.

Читать дальше →
Всего голосов 98: ↑97 и ↓1+96
Комментарии30

Нормализация Unicode

Время на прочтение2 мин
Количество просмотров21K
Однажды мне пришлось наблюдать, как спамеры очень интересным образом обходят спам-фильтр. Вместо традиционного URL типа «example.com», ссылка выглядела так:
http://example.com
Ссылка с подобной изощрённой точкой работает в IE7, FF3, Opera 9.5, Safari 3, Google Chrome и не работает в IE6.
Читать дальше →
Всего голосов 126: ↑125 и ↓1+124
Комментарии27

Функция echo в PHP может выполняться более 1 секунды

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

Или об особенностях управления отдаваемым контентом в PHP.


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

Начну с того, что если бы мне такое сказали вчера, то я покрутил бы сам у этого человека пальцем у виска, однако серия проведенных тестов неумолимо свидетельствует об этом.

Читать дальше →
Всего голосов 167: ↑153 и ↓14+139
Комментарии161

Запись и обработка акапеллы

Время на прочтение3 мин
Количество просмотров41K
image
Человеческий голос в песне наиболее критичен к восприятию на слух, а потому звучать он должен максимально естественно. Большинство звукорежиссёров сходятся во мнении, что записывать вокал нужно так, чтобы свести к минимуму его последующую обработку, и это, конечно, правильно. Вот только реализовать подобное можно лишь на профессиональной студии с хорошим (желательно ламповым) оборудованием. А можно ли обойтись без этого дорогущего оборудования, но вместе с тем максимально приблизиться к студийному качеству звучания? Можно! Этим мы сейчас и займёмся.

Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии85

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

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

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

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

Атомарность операций и счетчики в memcached

Время на прочтение5 мин
Количество просмотров8.1K
Серия постов про “Web, кэширование и memcached” продолжается. В первом и втором постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования и кластеризации memcached.

Сегодня речь пойдет о:
  • атомарных операциях в memcached;
  • реализации счетчиков просмотров и онлайнеров.

Следующий пост будет посвящен проблеме одновременного перестроения кэшей.

Что же с атомарностью операций?
Всего голосов 45: ↑43 и ↓2+41
Комментарии12

Средства для визуального проектирования

Время на прочтение2 мин
Количество просмотров63K
Всем известно, что для успешной разработки веб-сайта/веб-сервиса/программы (нужное подчеркнуть) очень важен этап проектирования. Грамотный план разработки — это половина всего проекта. Понятно, что прежде всего необходимо техническое задание, в котором будут описаны требования, сроки, и т.п. Но еще большее значение имеет визуальное проектирование, а именно: UML-схемы, схемы БД, пользовательские интерфейсы, эскизы страниц…
Читать дальше →
Всего голосов 51: ↑44 и ↓7+37
Комментарии84

Серверная валидация пользовательских данных

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

Доброго времени, хаброчеловеки!


Мне хотелось бы поднять тему серверной валидации пользовательских данных. Поискав на хабре топики данной тематики и погуглив, пришёл к выводу, что люди часто изобретают свои собственные велосипеды для реализации механизма валидации. В данной статье хочу рассказать о простом и красивом решении, которое успешно применяется в нескольких проектах.
мне интересно, что дальше...
Всего голосов 72: ↑62 и ↓10+52
Комментарии66

Ajax-машина

Время на прочтение11 мин
Количество просмотров4.1K
Знали ли разработчики LiveScript из Netscape о том, какое влияние окажет их язык, позже переименованный в JavaScript, на лицо интернета — веб-сайты, или, может быть, они твердо на это рассчитывали, но факт остается фактом — JavaScript на сегодняшний день является одним из самых важных и распространенных языков в мире.

В то время, как на стороне сервера трудится разношерстная компания языков в лице php, perl, python, ruby, .net, java и многих других, на стороне клиента JavaScript существует буквально в гордом одиночестве. Фактически, из маленького дополнения к html, JavaScript превратился в полноправного члена банды «html+css+js», который, зачастую, уже командует остальными, сверкая золотым браслетом с надписью «ajax» и делая недовольное лицо $( ) при случае.
продолжить чтение
Всего голосов 142: ↑131 и ↓11+120
Комментарии91

Отмотивируйте меня, пожалуйста

Время на прочтение3 мин
Количество просмотров3.2K
Представим себе классическую ситуацию…
Вы недовольны своей организацией дел и распределением времени и хотите наконец-то заняться своими проектами/спортом/ремонтом. Вы составляете список стратегических целей и план, месяцев эдак на шесть, по их достижению. Само собой, вы не забываете привязать каждую цель к конкретной дате. Возможно, вы даже рисуете диаграмму Ганта. Осталось совсем чуть-чуть — следовать намеченному плану. Но вот незадача: в один день не удалось выспаться, в другой самочувствие не очень, в третий — с утра вам хамят в кафе, чем сводят на нет удовольствие от утренней дозы кофеина и необратимо портят настроение на весь день. Вариантов — миллион. Итог — один: пропадает желание заниматься делами. Хочется все перенести на завтра. Завтра же все будет по-другому, так ведь?

В конце-концов, завтра превращается в послезавтра, послезавтра — в через неделю. Проходит первая веха вашего проекта — естественно безрезультатно. А потом и все остальные стремления засасываются болотом рутины. Ну и конечно, тут как тут новый год/день рождения и с ним приходит осознание, что время прошло, а по столь желанному направлению так ничего толком и не сделано. И все вроде правильно, только обстоятельства не сложились. Что не так? Скорее всего – проблема в мотивации.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии48

MySQL Query Cache

Время на прочтение5 мин
Количество просмотров110K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии60

Eclipse Tips #1

Время на прочтение1 мин
Количество просмотров4.5K
imageПопробую начать новую рубрику, в которой буду рассказывать о трюках и хитростях при работе с Eclipse, программируя на Java. Сегодняшний разговор будет о расширения, которые, на мой взгляд, помогут Вам в разработке.
Подробнее...
Всего голосов 55: ↑47 и ↓8+39
Комментарии79

Информация

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