понедельник, 7 ноября 2011 г.

пятница, 21 октября 2011 г.

Перезагрузка системы из командной строки

Linux

shutdown -r 0

Windows

shutdown -r -f -t 0

Автоматический вход в систему Windows XP и Windows 7

Выполнить команду:

control userpasswords2

В появившемся диалоге убрать галочку Требовать ввода имени пользователя и пароля. После нажатия OK или Применить, появится окно Автоматический вход в систему ввести имя пользователя по умолчанию и пароль, нажать OK. После этого при загрузке система будет автоматически логиниться под этим пользователем.

Настройка Cron

Cron -- планировщик задач в Linux.Он выполняет по расписанию заданные пользователем задачи. Каждый пользователь имеет свой список таких задач. Этот список настраивается командой crontab. В соответсвии со стандартом POSIX эта команда может вызываться всего с тремя опциями:
-l -- вывод списока уже существующих задач;
-e -- переход в режим редактирования задач;
-r -- удаление список задач.
В Linux у crontab есть еще оция -u. С её помощью можно работать  со списоком задач любого пользователя следующим образом:

crontab  -u anyuser -l/-e/-r


Так же эта оция позволяем привязать cron любого пользователя к произвольному файлу списка задач:

crontab -u anyuser crontabfile

Перейдем к редактированию списка задач, командой crontab -e. Если вы редактируете список задачи впервые, то программа попросит выбрать из списка редактор, который бы вы хотели использовать для редактирования списка задач. Если не первый раз, то откроет редактор, который был выбран при первом запуске (обычно vi или nano).
Каждая строка планировщика имеет следующий формат:

* * * * * выполняемая_команда
^ ^ ^ ^ ^
| | | | |
| | | | +---- День недели (0 - 7) (0 или 7 -- это Воскресенье)
| | | +------ Месяц (1 - 12)
| | +-------- День (1 - 31)
| +---------- Час (0 - 23)
+------------ Минута (0 - 59)


Временные параметры можно указывать диапазоном, в слудующем формате: 0-59, или перечисление, разделяя значения запятой: 0,1,2,8.
Примеры задач:

# выводить текст 'hello' в файл test.txt каждый понедельник в 3:30
30 3 * * 1 echo hello >> test.txt

# выполнять каждую минуту обнавление рабочей копии сайта из репозитория
0-59 * * * * cd /var/www/mysite; svn update

четверг, 13 октября 2011 г.

Определение кодировки текста в PHP

Функции имеющиеся по умолчанию в PHP не всегда верно определяют кодировку текста, (только в 70% случает). Но существуют сторонние библиотеки которые решают эту задачу на много лучше:
charset_x_win -- библиотека, для преобразования строк на русском языке из неизвестной кодировки в кодировку windows-1251. Оптимизирована для работы с короткими строками. Скачать библиотеку можно тут http://popoff.donetsk.ua/text/work/libs/a/charset/.

Интересные статьи по методам определения кодировки:
http://ivr.webzone.ru/articles/alt_win/index.htm
http://ivr.webzone.ru/articles/defcod_2/index.htm

Виртуальная машина на JavaScript

Прочитал в Хакере (153 выпуск) о существовании виртуальной машина написанной на JavaScript. Запущенный в браузере Linux можно увидеть на сайте разработчика http://bellard.org/jslinux/.

среда, 5 октября 2011 г.

Настройка mod_rewrite

mod_rewrite -- это модуль сервера Apache, для преобразования URL на лету. Модуль включен в Apache по умолчанию, поэтому никаких дополнительных действий по его подключению не нужно. Активировать и настроить преобразования можно как в файле конфигурации httpd.conf, так и в файле .htaccess*) конкретной директории.
Простейший пример настройки модуля mod_rewrite:

RewriteEngine on
RewriteRule ^(.*)\.aaa$ $1.php   [L]


RewriteRule ^(.*)\.ddd$ $1.php

В приведенном примере директива в строке 1задействуется модуль mod_rewrite. С нее начинается любая настройка модуля.
В строке 2 задается правило преобразования URL-адреса в виде регулярного выражения.  [L] означает что правило не зависит от правила следующего за ним.  Этих правил может быть произвольное множество.

Допустимы следующие параметры в квадратных скобках:
  • C – Chain; 
  • E – Environmental Variable; 
  • F – Forbidden; 
  • G – 410 Gone; 
  • L – Last; 
  • N – Next (Round); 
  • NC – No Case; 
  • NE – No Escape; 
  • NS – No SubRequest; 
  • P – Proxy; 
  • PT – Pass Through; 
  • QSA – Query String Append; 
  • R – Redirect; 
  • S – Skip; 
  • T – Type.
Директива RewriteMap используется для того чтобы
RewriteMap MapName MapType:MapSource
Параметр MapType может принимать следующие значения:
  • int -- 
    • toupper --
    • tolower --
    • escape --
    • unescape --
  • txt --
  • rnd --
  • dbm --
  • prg --
После этого определенные RewriteMap можно использовать в директивах RewriteRule и RewriteCond.

${MapName:LookupKey}
${MapName:LookupKey|DefaultValue}

Например:

RewriteRule .* {tolowermap:$0}

*) -- если вы хотите использовать для настроек файл .htaccess, то не забудьте поставить в httpd.conf для AllowOverride значение All (по умолчанию None) чтобы настройки из .htaccess приминились сервером.
**) --

Оригинальная документация лежит здесь http://httpd.apache.org/docs/current/mod/mod_rewrite.html