Блог пользователя Nelex

test

PrestaShop 1.5 и 903+ запросов к базе данных при создании интернет-магазина с высокой нагрузкой(Не сложная но эффективная оптимизация о которой не пишут)

PrestaShop
Понравилась CMS PrestaShop, в ней есть практически все что нужно для создания интернет-магазина.

Введение

Собственно задача у меня сделать магазин, в котором более 50 тыс. видов товара. Бывшая CMS WebAsyst за сроком годности и ввиду платности отпадает. Как дополнение к выше сказанному - несколько лет работы разных фрилансеров сделали систему крайне тяжелой для поддержки. Как важное условие, CMS должна быть совместима с импортом-экспортом товаров в/из программ разработчика Elbuz Content Creator и Price List Importer(общение с их тех. поддержкой сплошной вынос мозга). Но все это напоролось на крайне медленную производительность сайта. Повторюсь, количество видов товара более 50 тыс. Включение отладки в /config/defines.inc.php:

define('_PS_DEBUG_PROFILING_', true);

Отладка(внизу сайта) показала наличие 903 запросов. И тут я решился взяться за поиски.
Первым на что пал выбор - блок категорий. Ввиду большого уровня вложенности, количество запросов там вполне могло быть достаточно высоким. Но нет... Первое место достается не ему. Блок поставщиков тоже после отключения не снял нагрузки. Ни просмотренные товары, ни другие модули. Но есть несколько кандидатов. Остальное под катом.

test

Подборка статей по интерфейсам(UI,UX,Юзабилити) и статейка по SEO

Хабр
Отобрал достаточно интересные и содержательные статьи по UI, UX и SEO. На текущий момент выделил для себя именно их. Тут только части материала. Все остальное можете прочитать перейдя по ссылкам.


Грань между UI и UX

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

«Основная проблема интерфейса в том что это интерфейс. Интерфейсы — это препятствия на пути. Я не хочу сосредоточивать свои силы на интерфейсе. Я хочу сосредоточиться на работе… Я не хочу осознавать себя использующим компьютер, я хочу осознавать себя делающим дело».

Дональд Норман

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

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

test

Основы создания отказоустойчивого сервиса(серверная ферма). Доклад. Видео.

Load Balancing
В докладе рассказывается о том как построить архитектуру отказоустойчивого сервиса. Весьма полезно для тех кто планирует работать с высокими нагрузками. Достаточно полезно для тех кто хочет вспомнить некоторые основы тем кто уже работает с высоконагруженными сервисами. Построение кластерной основы для высоконагруженных сервисов.

test

Kohana 3.3 MySQLi драйвер

Kohana 3
В один прекрасный момент подключение mysql было обьявлено deprecated и потребовалось использовать mysqli.
Сам драйвер можно найти здесь. Для подключения драйвера достаточно просто закинуть его содержимое в папку modules/database/ и

test

PrestaShop 1.5 и 404 ошибка(страница не найдена) при клике по категориям

prestashop 404 error
Пришлось по колдовать над решением этой загадочной 404 ошибки(страница не найдена) при клике на категорию в PrestaShop 1.5.4. Некоторые люди правили все путем манипуляции с базой данных. У меня проблема решилась куда как проще.

test

Собственный диалплан автоответчика и прослушивания сообщений в Asterisk 1.8(Используя встроенный механизм базы данных)

VoiceMail
Если вас не устраивает стандартная функция автоответчика и хочется написать свою собственную, то ее вполне можно написать используя встроенный механизм работы с базой данных. База данных у Asterisk на основе berkeley db.

test

Asterisk 1.8 + PHP-AGI = Функция дня и ночи и работа фирмы по графику рабочей недели

asterisk worktime
Эта маленькая заметка предполагает что вы уже работали с Asterisk и знаете что такое Dialplan-ы и большую часть того что с ними связано. Так же AGI(Asterisk Gateway Interface). AGI это интерфейс расширения Asterisk с помощью других языков программирования, в частности PHP, Для использования AGI необходимо создать файл в директории /usr/share/asterisk/agi-bin/ в нашем случае это файл worktime.php. AGI использует стандартные потоки ввода/вывода и потока вывода ошибок. Ниже вполне обычный код PHP за некоторым исключением, касающимся как-раз таки ввода-вывода. Все касательно PHP AGI замечательно рассказано в книге Asterisk: будущее телефонии
Ну а теперь сам код:

test

Как проверить стабильность канала на VPS или доступность удаленного сервера подручными средствами Linux

Пало подозрение на нестабильность интернет-канала к VPS. Можно оплатить систему мониторинга для удобства работы, но так как дело разовое решено было использовать подручные средства. Решение из жанра велосипеды велосипедистые. Итак, что мы будем использовать:
- screen
- ping
Итак, что нам нужно будет, так это вывод команды ping записанный в файл. Хотя конечно можно и в консоли посмотреть, но уж пусть лучше в файл на всякий случай.

test

Сборка Broadcom Wi-Fi драйвера для ядер Linux версии 3.10

tux wifi
И как всегда с новым ядром, новые проблемы. Сперва сборку драйверов пропатчил патчами указанными в прошлой статьей. После выбило такую вот ошибку:

make                                                                       
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Вход в каталог `/usr/src/linux-headers-3.10-1-amd64'
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
  CC [M]  /home/nelex/Linux/b43/src/wl/sys/wl_linux.o
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c: In function 'wl_reg_proc_entry':
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3196:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3196:22: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3201:16: error: dereferencing pointer to incomplete type
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3202:16: error: dereferencing pointer to incomplete type
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3203:16: error: dereferencing pointer to incomplete type
cc1: some warnings being treated as errors
make[4]: *** [/home/nelex/Linux/b43/src/wl/sys/wl_linux.o] ?????? 1
make[3]: *** [_module_/home/nelex/Linux/b43] ?????? 2
make[2]: *** [sub-make] Ошибка 2
make[1]: *** [all] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-3.10-1-amd64'
make: *** [all] Ошибка 2

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

Дальше патчим сперва 0006-add-support-for-linux-3.10.0.patch, потом 0007-switch-proc-create-3.10.0.patch
make
make install
sudo depmod
modprobe wl

Все, драйвера должны заработать. Спасибо автору патча,

test

Zabbix 2.0.6 установка на Debian GNU\Linux

zabbix
Всех приветствую, это очередная статья о моих скитаниях в мире интернета, серверов, протоколов и прочего. В этой статейке мы поставим очень легко и просто систему мониторинга Zabbix.

ZABBIX — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым
Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle. Веб-интерфейс написан на PHP. ZABBIX поддерживает несколько видов мониторинга:
Simple checks — может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP без установки какого-либо программного обеспечения на наблюдаемом хосте.
ZABBIX agent — может быть установлен на UNIX-подобных или Windows хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и т. д.
External check — выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP.

Итак. Имеем Zabbix 2.0.6 в дистрибутиве. Имеем сам дистрибутив Debian GNU\Linux.

test

Рейтинг доступности хостинга

404 error
Часто ли доводилось вам общаться с саппортом хостера? Если да, и при том неоднократно, вы наверняка знаете что лучше вообще не общаться. Вот наткнулся на интересную страницу с рейтингом стабильности хостеров. Несколько раз доводилось общаться, в принципе проблемы решались, но спасало то что я прекрасно знал в чем именно дело и мог общаться с хостером на равных. Если ваш уровень ниже, то вам могут спокойно сказать что это ваша личная проблема, а у самого хостера все отлично и будете возиться вы еще долго. Вот ссылка на рейтинг стабильности хостеров:

test

Debian: Отправка в tar.gz архиве новых файлов на почту через cron с помощью mutt

Задачка

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

Скрипт

Пишем файл скрипта:

Страницы

Subscribe to RSS - Блог пользователя Nelex