Особенности работы функции checkdnsrr()

Функция checkdnsrr() используется для проверки существования записей . Например, фреймворк Kohana использует эту функцию для проверки наличия MX-записи домена, указанного в адресе электронной почты.

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

Автор: , опубликовано в: PHP, комментариев: нет
24
Сен
2010

Linux: экстренная перезагрузка сервера

Иногда случаются ситуации (поменьше бы их таких), когда из-за какой-нибудь ошибки оборудования или повреждения файловой системы операционная система входит в ступор и не может прочитать ничего с диска. Систему нужно перезагружать, но система не может прочитать /sbin/reboot, а техническая поддержка тупит (не могу не передать привет техперсоналу HiVelocity.net).

В этом случае систему можно перезагрузить двумя командами echo (нужны права администратора). Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 6
6
Июл
2009

Вывод списка страниц с описанием

Для вывода подстраниц (иными словами, дочерних страниц текущей страницы) авторы тем очень часто используют такой код (пример взят из OneTheme):

[-]
View Code PHP
< ?php
    $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    if ($children) { ?>
    <ul>
        < ?php echo $children; ?>
    </ul>
< ?php } ?>

У wp_list_pages(), на мой взгляд, есть два серьёзных недостатка:

  1. Хотя для вывода информации нужны всего два поля (ID и post_title), wp_list_pages() выбирает всю информацию, что ведёт к увеличению трафика между и (и, в конечном итоге, сказывается на производительности);
  2. При использовании wp_list_pages() не получается вывести дополнительную информацию о странице (например, её описание, рейтинг и т.п.).

Далее »

Автор: , опубликовано в: WordPress, комментариев: 2
27
Апр
2009

Простой способ генерирования паролей в Bash

[-]
View Code Bash
CHARS="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()-_=+\\|/"
LENGTH="8"
while [ "${n:=1}" -le "$LENGTH" ] ; do
    PASSWORD="$PASSWORD${CHARS:$(($RANDOM%${#CHARS})):1}"
    let n+=1
done

Далее »

Автор: , опубликовано в: Linux, комментариев: 9
15
Мар
2009

Мысли на тему массового UPDATE в MySQL

[-]
View Code MySQL
INSERT INTO `table` (`a`, `b`, `c`) VALUES
(1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE `b`=VALUES(`b`), `c`=VALUES(`c`);

Например, для (при условии, что пара (user_id, meta_key) является уникальным ключом):

[-]
View Code MySQL
INSERT INTO `wp_usermeta` (`user_id`, `meta_key`, `meta_value`) VALUES
(1, 'key1', 'value1'),
(1, 'key2', 'value2'),
(1, 'key3', 'value3'),
(1, 'key4', 'value4'),
(1, 'key5', 'value5')
ON DUPLICATE KEY UPDATE `meta_value`=VALUES(`meta_value`);

Должно работать.

Автор: , опубликовано в: MySQL, комментариев: 6
18
Янв
2009

WordPress: одновременный логин для HTTP и HTTPS

В , начиная с версии 2.6, встроена поддержка : можно сделать либо -логин, либо поместить панель администратора за . Однако, из-за особенностей реализации, когда пользователь входит в систему, он получает cookie либо для HTTP, либо для HTTPS. Иными словами, если пользователь попал на http://example.com/wp-admin/, то при переходе на https://example.com/wp-admin/ ему придётся входить в систему еще раз.

Всё бы ничего, но если плагин делает POST на HTTPS, то пользователь попадает на wp-login., который после успешного входа сделает перенаправление (GET) на URL, который ожидает принять POST. При этом если POST шёл на https://example.com/wp-admin/admin.php?page=somepage&noheader=1, то пользователь увидит безобразную страницу. Далее »

Автор: , опубликовано в: Советы, комментариев: 2
17
Янв
2009

Секреты update_postmeta_cache()

Если плагину приходится в цикле читать метаданные для большого количества записей, можно увеличить путём использования функции update_postmeta_cache(). Далее »

Автор: , опубликовано в: Советы, комментариев: 6
1
Окт
2008

Пять советов верстальщику

Принимая эстафету, организованную Никитой Селецким, от Максима Покровского, добавляю свои пять копеек в копилку советов по вёрстке.

  1. Изучайте стандарты W3C. Как это ни банально звучит, хороший верстальщик (да и web-разработчик) просто обязан (пусть не наизусть) знать и понимать спецификации. Недавно в книжном магазине видел книжку по верстке. Лучше бы я её не видел: вложенные таблицы, архаичные тэги и всё в том же духе. Так вот: такие книги — зло. Всё, что надо знать, есть в спецификациях :-) Следствия из данной рекомендации: да здравствует семантическая вёрстка; Vaild XHTML/CSS forever (тем не менее, это не должно быть самоцелью).
  2. Дизайн должен быть кросс-браузерным. Internet Explorer уже давно не единственный браузер, которым пользуются люди, но, тем не менее, существует большое количество сайтов, которые написаны исключительно под IE. Так вот, это неправильно. Дизайн (равно как и код) нужно тщательно тестировать в как можно большем количестве браузеров. Для тех, кто под Windows, вообще райская жизнь: на одной машине без проблем уживаются IE6/7, FireFox, Opera, Safari и даже Konqueror из виндового порта KDE4. Затраты времени на тест в различных браузерах окупаются: заказчики имеют тенденцию смотреть на дизайн в экзотических браузерах, и когда всё отлично смотрится с первого раза, их приятно удивляет. А приятное удивление заказчика оборачивается бонусами для исполнителя :-)
  3. Помните про usability и accessibility. Тестируйте сайт с выключенными картинками, JavaScript и CSS (в различных комбинациях). Страница без CSS позволяет получить представление о том, как поисковик воспринимает страницу. Контент в самом низу? Что же удивляться, что Гугол недооценивает сайт? Или поставьте себя на место человека с ограниченными способностями, использующего скринридер. Хватит ли у Вас терпения, чтобы прослушать главную страницу Вашего сайта? Или Вам это надоест, когда скринридер пойдет читать меню навигации? Отключили JavaScript и развалился дизайн/не отправляется форма? Далеко не все пользователи включают JavaScript. И если для правильного отображения сайта требуется то, что может не быть доступно всем пользователям — это минус.
  4. Изучайте работу мастеров. Это полезно. Только ключевое слово — изучайте. Если слепо передрать код/макет/нужное подставить без понимания того, что там происходит — это нехорошо. А если разобраться с кодом, то приобретаются знания и опыт. Как говорится, знание — сила.
  5. Упрощайте. Если код можно упростить, его нужно упростить. Во-первых, так понятнее, во-вторых — чище, в-третьих — размер страницы уменьшается. Суп из div'ов ничуть не лучше вложенных таблиц, поверьте.

Вроде всё… Эстафету передавать мне особо некому (разве что Вам, Всеволод), поэтому подхватывайте все желающие :-)

Автор: , опубликовано в: CSS, HTML, комментариев: 6
28
Май
2008