Как стать автором
Обновить
16
Александр Фанамуров @Fanamuraread⁠-⁠only

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

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

История развития и оптимизаций одного высоконагруженного ресурса

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


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →
Всего голосов 208: ↑198 и ↓10+188
Комментарии56

Правила эффективного использования jQuery

Время на прочтение5 мин
Количество просмотров43K
Здесь приведен ряд очень простых правил, следуя которым, ваше сотрудничество с jQuery не будет омрачено скрежетом напрягшегося браузера. Конечно, не так часто случается, что скорость работы javascript’а оказывается критичной, однако такое все же может произойти, и произойти в самый неподходящий момент. Поэтому, лучше держать эти правила в голове и не пренебрегать ими.
Читать дальше →
Всего голосов 144: ↑112 и ↓32+80
Комментарии151

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Время на прочтение6 мин
Количество просмотров200K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?
Всего голосов 99: ↑96 и ↓3+93
Комментарии41

6 способов убить Ваши сервера — познаем масштабируемость трудным путем

Время на прочтение5 мин
Количество просмотров18K
Узнать, как отмасштабировать Ваше приложение, не имея при этом никакого опыта, — это очень нелегко. Сейчас есть много сайтов, посвященных этим вопросам, но, к сожалению, не существует решения, которое подходит для всех случаев. Вам по-прежнему необходимо самому находить решения, которые подойдут под Ваши требования. Так же, как и мне.

Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
Читать дальше →
Всего голосов 158: ↑148 и ↓10+138
Комментарии73

Генерирование изображений-заглушек

Время на прочтение3 мин
Количество просмотров57K
Сегодня мне кинули ссылку на прикольный сервис для быстрого генерирования изображений-заглушек. Может пригодиться для html-верстки. На мой взгляд, это удобно тем, кто и так использует заглушки — экономит время при вёрстке, т.к. сами заглушки уже готовы. Можно цвета/размеры подбирать, меняя только числа/буквы в коде, не отвлекаясь на сам файл картинки — и сразу видеть эффект. И сами размеры видеть написанными, если нужно, чтоб к коду не возвращаться для проверки. Или вместо размеров можно текст добавить, чтоб всегда знать, для чего эта заглушка (типа «Бан(н)ер» или там «Лого», или «Фотография»).

На сервисе не нужна регистрация — и вообще на сайт можно не заходить, чтобы его использовать. Пишете сразу у себя в коде, например:
<img src="http://placehold.it/350x50" />
и получаете:


Update. Благодаря усилиям k0rv1n, найден вариант этого сервиса, только лучше :)
Во-первых, там поддерживается кириллица. Во-вторых, там даны ссылки на исходники для разных языков.
Автор dummyimage.com — тот же Russell Heimlich, что и у placehold.it. У placehold.it есть ещё один автор, но будем считать, что он делал дизайн (дизайн там правда круче, но видимо как раз из-за понтового шрифта Unicode и не выходил).

Примеры (см. под хабракатом) я поменял с placehold.it на dummyimage.com, раз уж он функциональнее…
Ещё насколько примеров под катом
Всего голосов 287: ↑276 и ↓11+265
Комментарии119

импорт товаров с картинками в Ubercart

Время на прочтение3 мин
Количество просмотров4.5K
Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий Интернет-магазин с CMS Drupal. Ubercart считается одним из лучших в мире решений для электронной коммерции.

Как правило много вопросов вызывает массовый импорт товаров с картинками.
В моем случае был excel файл со списком товаров и их атрибутами (наименование, описание, цены, авторы, ссылки на картинки и т.п.).
Excel файл в чистом виде довольно таки трудно скормить для импорта, поэтому я сохранил его в виде *.csv файла.
Я щас опишу что дальше с ним делать:)
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии6

Загрузка файлов через Form API

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

Т.к. этот процесс у меня получился не сразу, то я решил описать его, авось кому пригодится и поможет.

Чтобы было интереснее, опишу на создании модуля для random'ного отображения картинок.

Задача
Задачей является именно реализация возможности закачивать файлы в Drupal через Form API. А описанный ниже пример, является лишь примером этой реализации.
Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии15

Вувузела фильтр

Время на прочтение2 мин
Количество просмотров3.4K
В этом посте хочу рассказать, о том, как справиться с «роем мух», как его называет aguares, в трансляциях с Чемпионата Мира по футболу 2010. Звук этот появляется из противных южноафриканских дудок — название которым — Вувузелы.

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

Данная проблема разбивается на следующие подзадачи:
1) Считать поток аудио до вывода его на колонки
2) Произвести подавление основных частот вувузел
3) Подать обработанный звук на аудио выход
+ все это в режиме реального времени.

Из методов цифровой обработки аудио сигналов, доступных для Windows 7, мною была выбрана концепция VST.
Читать дальше →
Всего голосов 131: ↑119 и ↓12+107
Комментарии95

css opacity и select-ы

Время на прочтение2 мин
Количество просмотров14K
Совсем недавно натолкнулся на один занимательный CSS баг/фичу, решил поделиться, возможно кому пригодится.
Нужно было на сайте создать выбор городов из списка, стандартный список не подошел по эстетическим соображениям, результат должен был выглядить как «ссылка» при клике на которой выпадает список доступных городов, задача банальна, но тут случайно наткнулся на занимательное поведение браузеров, причем как оказалось у всех одинаковое.
Читать дальше →
Всего голосов 70: ↑65 и ↓5+60
Комментарии48

Joomla 1.6 — Бета версия

Время на прочтение2 мин
Количество просмотров1.4K
image
Вчера, 17 мая вышла первая бета версия Joomla 1.6
Демо Joomla 1.6 бета
Вторая бета запланирована на 31 мая.

Возможности Joomla 1.6:
Новая система разграничения доступа пользователей (New Access Control System) — позволяет администраторам назначать кто может иметь доступ к просмотру и созданию, редактированию статей.
Неограниченная глубина организационной модели (Unlimited Depth Organizational Model) — неограниченная вложенность категорий, закрепление за пользователем определенных категорий.
Обновление расширений в один клик (One-Click Extension Updates) — позволяет пользователям обновлять расширения Joomla прямо из административной панели.
Семантический XHTML вывод контента (Semantic XHTML Layouts) — предоставляет лучшую основу для вывода контента (если честно не очень понял что это такое, но покопавшись в админке вроде понял что к каждой статье более удобно можно будет прикреплять модули и индивидуальные шаблоны сайта).

Более подробно о возможностях Joomla 1.6 можно прочесть в моей предыдущей статье на хабре о Joomla 1.6 Альфа.
Если вкратце- ничего революционно нового в 1.6 нет. Фактически это немного хакнутая под управление группами и с оптимизированным кодом, поменьше сервак будет грузить.

Специально для минусующих: да, я знаю что Joomla для разработчика это полный отстой. Joomla это топор! Из этого топора можно сварить приемлимый суп, только хорошо зная ингридиенты. Рассуждение об ингридиентах под катом.
Читать дальше →
Всего голосов 80: ↑56 и ↓24+32
Комментарии74

Обеспечение качества программного продукта

Время на прочтение4 мин
Количество просмотров11K
Дисциплина «Метрология программного обеспечения» входит в учебный план подготовки дипломированных специалистов по направлению 654600 — «Информатика и вычислительная техника» по специальности 220400 — «Программное обеспечение вычислительной техники и автоматизированных систем». Дисциплина изучает проблемы оценки метрических характеристик качества ПО на этапах от разработки спецификаций до завершения отладки и тестирования программного продукта. В курсе рассматриваются критерии, характеристики и метрики качества ПО; особый упор делается на характеристики корректности, надежности и сложности программ. Изучаются формальные модели и методы оценки как статических, так и динамических характеристик качества ПО, позволяющие на различных стадиях разработки выявлять просчеты и дефекты программного изделия. Рассматриваются инструментальные средства поддержки и автоматизации измерения характеристик ПО.
Далее по тексту будет находится краткий обзор инструментов с помощью которых можно анализировать различные характиристики в приложениях созданных на PHP. Данный материал появился на свет в результате некоторых экспериментов в области непрерывной интеграции, и должен был являться частью статьи про непрерывную интеграцию (спойлерить пока не буду, боюсь сглазить) все в том же РНР, но я решил все-таки выделить его в самостоятельный обзор, так как возможно, в последующих статьях я буду ссылаться на него, а так же надеюсь узнать об аналогичных инструментах еще не попавших мне на глаза. Некоторые инструменты уже были рассмотрены достаточно подробно, но тем не менее полного списка всех доступных еще не было.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Комментарии43

Пара полезных плагинов к jQuery

Время на прочтение2 мин
Количество просмотров1.1K
Написал пару плагинов по jQuery, чтобы немного облегчить себе верстку и кодинг.

Возможно, кому-то они окажутся полезными. Их код навеян постами, найденными на просторах Интернета, а затем, ввиду частой используемости, оформлен как плагины.

Первый — jquery.outlinefix.js. Используется для удаления раздражающих рамок с ссылок, являющихся якорями (например, <a href="#">ссылка</a>).

Проблема:

(у ссылок после клика остается рамка)

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии16

Drupal 6. Быстрая организация простого кеширования

Время на прочтение2 мин
Количество просмотров1.7K
Поискал на Хабре и не нашел ничего про использование такого модуля Drupal как cacherouter. Исправляю данное недоразумение, т.к. этот модуль позволяет значительно ускорить работу Drupal даже на таком требовательном хостинге как Majordomo (любит отключать весь аккаунт при превышении нагрузки).

Сам модуль ничего нового и кардинального не преподносит — только позволяет выносить таблицы кеша из БД в другие хранилища, как, например, файловая система, memcache, APC и пр.

Меня, конечно же, давно волнует вопрос, какого х… разработчики Drupal засунули кэш в БД, но рассказ не об этом.
Читать дальше →
Всего голосов 49: ↑39 и ↓10+29
Комментарии23

elFinder — файловый менеджер для сайта. Новый вкус

Время на прочтение3 мин
Количество просмотров3.9K
Некоторое время назад мы представляли уважаемой публике наши open source продукты для веб-разработчиков — редактор elRTE и файловый менеджер elFinder. После анонса мы получили немало отзывов и надо сказать были изрядно удивлены, что интерес к файловому менеджеру оказался заметно выше чем к редактору.

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

И сегодня с удовольствием от хорошо сделанной работы предлагаем попробовать наше фирменное блюдо elFinder!

elFinder

Читать дальше →
Всего голосов 134: ↑131 и ↓3+128
Комментарии129

Увеличиваем скорость загрузки сайта используя lazy-load изображений

Время на прочтение1 мин
Количество просмотров70K
Сейчас многие сайты насыщены графикой в разных видах: аватары, иллюстрации к постам, галереи и тп.

Читатели блога «Клиентская оптимизация» как никто другой знают цену лишних запросов к серверу.

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

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

LinguaLeo.ru — освоение английского языка онлайн. Сделано в Таиланде!

Время на прочтение2 мин
Количество просмотров5.1K
LinguaLeo Logo -- английский онлайн 1 марта родилась бета-версия нового веб-сервиса для изучения английского языка — LinguaLeo.ru.

Сервис позволяет освоить английский язык через видео, аудио и тексты, созданные носителями языка. При этом используются удобные инструменты для освоения новых слов в контексте. Сервис создан для людей, которые хотят быстро развить восприятие на слух живой английской речи и увеличить словарный запас.
Узнать больше...
Всего голосов 140: ↑137 и ↓3+134
Комментарии111

Тонкости использования селекторов аттрибутов в CSS

Время на прочтение4 мин
Количество просмотров35K
CSS может связываться с HTML элементами используя любые из его атрибутов. Вы наверняка знаете о классах и ID. Проверим это в HTML:
<h2 id="first-title" class="magical" rel="friend">David Walsh</h2>

Этот один элемент имеет три аттрибута: ID, class и rel. Для выбора элемента в CSS вы можете использовать селектор ID (#first-title) и селектор class (.magical). Но знаете ли вы, что можно использовать для выбора атрибут rel? Это так называемый селектор атрибута:
h2[rel=friend] {
  /* woohoo! */
}

Читать дальше →
Всего голосов 165: ↑140 и ↓25+115
Комментарии116

Фрилансерам на заметку

Время на прочтение2 мин
Количество просмотров17K
Фрилансеры часто рекомендуют своим клиентам оплатить работу через терминалы.

Это удобно для клиентов далеко не всегда знающих, что такое электронные деньги, но пользующихся терминалами для оплаты повседневных услуг. Да и для оплаты нужно всего 2 шага:
  • Записать номер кошелька, обычно, Яндекс.Деньги или Вебмани
  • В терминале ввести номер кошелька и вставить оговоренную сумму в купюроприемник.
Все просто, но возникает несколько неудобств при оплате в терминалах:
  • Фрилансер не может определить, что работа оплачена, так как платежи приходят без комментариев (заказчику приходится дергать ТП, чтобы узнать номер транзакции). Это особенно актуально, если у фрилансера много заказчиков и платежей.
  • В терминалах есть комиссия и фрилансер рискует получить на свой кошелек меньшую сумму, а клиенту приходится бежать к терминалу еще раз, чтобы доложить 10-50 рублей. Даже не смотря на наличие в некоторых терминалах калькулятора комиссий.
Процесс оплаты можно сделать еще проще, принимая оплату через терминалы следующим образом:
Читать дальше →
Всего голосов 43: ↑29 и ↓14+15
Комментарии71

Колоночная верстка

Время на прочтение5 мин
Количество просмотров16K
Существует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:

Плюсы
  • Есть прижимающийся к полу футер
  • Колонки меню растягиваются по 100% высоте
  • Колонок может быть сколько душе угодно
  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
  • Ширина как резиновая, так и фиксированная
  • Критический минимум хаков
  • Не используется Javascript
  • Не используются бекграундовые изображения для создания эффекта колонки
  • Никаких таблиц
  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

Минусы
  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
  • Есть несколько абсолютно-позиционируемых блоков
Читать дальше →
Всего голосов 106: ↑97 и ↓9+88
Комментарии134

текст под произвольным углом без флеш и js

Время на прочтение3 мин
Количество просмотров30K
Ранее здесь была представлена статья о том как сделать вертикальный текст картинками, генерируемыми php.

Теперь я хочу вам рассказать о том как сделать поставленную задачу без картинок, флеш и js, только средствами html и css. К тому же стало возможно сделать текст под произвольным углом. В конце статьи есть готовый пример.

вертикальный текст и текст под углом
Читать дальше →
Всего голосов 181: ↑170 и ↓11+159
Комментарии115

Информация

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