Портрет 4X_Pro
Онлайн
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Сейчас специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Компьютерное

Немного о юзабилити таблиц

4X_Pro

Часто при разработке CMS требуется вывести таблицу с какими-то элементами, которые можно выбирать и редактировать (например, список страниц сайта или список вопросов в FAQ). Казалось бы, что проще: достаточно использовать всего три тега — table, tr, td и все. Однако если список будет длинный, да еще названия элементов могут быть длинными и растягиваться на несколько строчек, то пользоваться такой таблицей будет не очень удобно. Можно дать несколько советов, как сделать такую таблицу более удобной. Читать далее…

Отслеживаем медленные запросы или Почему тормозит Web-сервер

4X_Pro

Бывают ситуации, когда Web-сервер тормозит, медленно выдает страницы, а что именно является причиной, непонятно. Первое что приходит в голову — поставить в скриптах контрольные точки, в которых фиксировать время выполнения скриптов. Это может быть достаточно трудной задачей, а при большой нагрузке и вовсе привести к зависанию. Поэтому сначала лучше попробовать встроенные средства Apache и MySQL: mod_status и лог медленных запросов.

Читать далее…

Рекурсивный chmod только для каталогов

4X_Pro

Часто сталкивался с ситуацией, когда для каталогов нужно выставить права 755, а для файлов — 644. Обычно решал так:

$ chmod -R 644 ./

а далее проставлял 755 вручную для каталогов, но это неудобно, особенно при глубокой вложенности. Сегодня нашел другое решение: можно формировать список файлов с помощью find, а затем вызывать chmod с помощью xargs. Т.е. получаем:

$ chmod -R 755 ./
$ find ./ -type f -print | xargs chmod 644

Если требуется наоборот, выполнить команду только для каталогов, то после -type нужно указать d вместо f. Важно так же помнить про права доступа (т.е. если сначала поставить всем 644, а потом пытаться повысить каталогам до 755, могут начаться ошибки доступа).

Свой сайт: с чего начать?

4X_Pro

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

Поэтому я решил предолжить небольшой план, которого придерживаюсь сам при работе над сайтами: Читать далее…

Боковые вкладки в Chrome

4X_Pro

UPD: увы, тема уже неактуальна. Пару лет назад боковые вкладки в Chrome убрали окончательно и бесповоротно.

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

Но недавно узнал, что в последних версиях Chrome есть экспериментальная функция: показ вкладок сбоку, а не сверху. Попробовал... Читать далее…

Загрузка JavaScript-библиотек с Google Loader

4X_Pro

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

К этой же мысли пришли и в Google, создав Google Loader API. Работает он следующим образом: на сайт подгружается небольшой JavaScript, который может загружать  jQuery, jQuery UI, Google Maps, SFWObject, Prototype и еще несколько известных библиотек прямо с серверов Google.

Это дает целый ряд преимуществ: Читать далее…

Pixlr -- редактируем фото онлайн

4X_Pro

Каждый, кто делал сайт с возможностью загрузки фото или хотя бы аватаров, наверное, задумывался о том, что хорошо бы сделать возможность пользователю отмасштабировать или обрезать фото прямо онлайн. Недавно я нашел весьма интересное решение: онлайн-редактор Pixlr, сделанный на Flash. По возможностям он мало уступает ранним версиям Photoshop (есть все те же основные инструменты, поддержка слоев, фильтров, которые были в Photoshop 7). Кроме того, имеется и более простая версия Pixlr Express, которая позволяет применить набор эффектов (изменение размера, обрезка, коррекция красных глаз, изменение баланса белого и т.п.) к изображению. Открывать в редакторе можно изображения как с URL, так и со своего компьютера в форматах JPG,  TIFF, PSD, PNG и других.

Самый простой способ подключить редактор к своему сайту — открывать его в IFRAME. Но в этом случае пользователю  придется сохранять отредактированный файл на свой компьютер, а потом грузить его на сайт. Неудобно. Поэтому лучше использовать Pixlr API для открытия и сохранения файлов прямо на сайт. API очень прост в освоении:

Читать далее…

Блок высотой на всю страницу и фиксированный "подвал" снизу

4X_Pro

Давно хотел разобраться, как верстать сайт с блоком, который будет растягиваться по высоте на всю страницу, и наконец-то это сделал. Как выяснилось, все просто: нужно и тегу body, и тегу html указать в стиле высоту 100%, а после этого задать для нужного блока height: 100%, или min-height: 100%, если требуется растягивать блок по вертикали при большом объеме контента.

Но мне требвалось не только сделать такой блок, но и разместить внизу "подвал" так, чтобы он был всегда снизу и имел фиксированную высоту в пикселях. Причем была возможна ситуация, когда в основном блоек контента окажется больше, чем на одну страницу, и в этом случае "подвал" должен оказаться после его окончания (т.е. вариант со стилем position: absolute; bottom: 0 для подвала не подходил).

В итоге я сделал у "подвала" отрицательное поле сверху равным высоте блока, а в основной блок вложил еще один с положительным отступом снизу (тоже равным высоте), чтобы "подвал" не накладывался на контент. В итоге получился примерно такой код: Читать далее…

Осваиваем Google Maps API

4X_Pro

Сегодня начал осваивать API Google Maps. Потребовалось сделать карту Москвы с метками, при щелчках по которым будет происходить переход на страницы, описывающие находящиеся там объекты. Как выяснилось, все предельно просто. Но расскажу по порядку.

Читать далее…

PHP: почта через SMTP с аутентификацией или msmtp

4X_Pro

Давно хотел узнать, как отправлять почту через сторонний сервер с помощью стандартной функции mail, так как считаю неправльным использовать всякие классы-надстройки, а держать SMTP-сервер только для этих целей зачастую нежелательно. И вроде бы нашел решение для Linux и FreeBSD: программа msmtp.

Читать далее…


Страницы:
Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.