пятница, 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

вторник, 4 октября 2011 г.

Fast Artificial Neural Network Library (FANN)

Библиотека FANN предназначена для создания искусственных нейронных сетей. Существуют реализации более чем на 15 языках программирования.

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

Удаление директории рекурсивно

Удаление директории рекурсивно:
rm -rf

Subversion

Состав пакета Subversion
  • svnadmin --  утилита для создания, управления и восстановления репозитария Subversion;
  • svn -- клиент Subversion;
  • svnserve -- программа-сервер, предоставляющая доступ к репозиторию Subversion по протоколу SVN или SSH.
Первое что нужно сделать при начале работы с Subversion -- это создать репозиторий. Делается это утилитой svnadmin:

svnadmin create /usr/home/user1/repository

Созданный репозиторий пост. Для того чтобы теперь создать в нем нужную нам иерархию директорий, воспользуемся утилитой svn. Допустим у нас имеется проект project1. Классическая иерархия включает в себя основную ветвь, хранящуюся в директории trunk, и ветвления хранящиеся в директории brunches. Поэтому создадим следующую иерархия папок:
-->project1
    |
    +-->trunk
    |
    +-->branches

Импорт нашей иерархии в репазиторий осуществляется следующим образом:
  1. переходим в директорию содержащую директорию project1;
  2. выполняем команду:
svn import project1 file:///usr/home/user1/repository/project1


Документация по Subversion:
http://doc.dvgu.ru/devel/svn/index.html
http://mail.softics.ru/books/svn-book.html

Архивирование данных в Linux

Формат tar используется для создания архива, то есть для хранения нескольких файлов в одном файле. Важно знать, что сам по себе tar не сжимает файлы, а просто создает архив который по размеру схож с общим суммарным размеров упакованных в него файлов.
Gzip (расшифровывается как GNU zip) является утилитой для сжатия файлов. Интересно то, что gzip не может создать архив - утилита только сжимает один файл до меньших размеров.
Bzip2 - это альтернатива gzip, обладавший лучшими показателями сжатия и скорости. В результате мы получим архив с расширением tar.bz2.
Как же создать сжатый архив в linux? Ответ -- использовать и tar и gzip/bzip2 одновременно. Смысл в том, что с начала создается архив с файлами при помощи утилиты tar, а потом этот архив сжимается утилитой gzip/bzip2. В результате всех этих манипуляций мы должны получить файл с расширением tar.gz/bz2.

Утилита tar

tar опцииf имя_архива имена_файлов_и_каталогов
Допустимые опции:
c -- создать архива;
x -- распаковать архива;
t -- получить список содержимого архива;
r -- добавить файлы в конец архива (нельзя делать в сжатых архивах);
j -- тип архива bz2;
z -- тип архива gz;

Примеры:

За архивировать файл /home/user1/file.txt в сжатый архив archivefile.tar.gz:
tar -czf archivefile.tar.gz /home/user1/file.txt

Распаковать сжатый архив archivefile.tar.gz в директорию /home/user1/:
tar -xzf archivefile.tar.gz /home/user1/

Просмотреть содержимое архива archivefile.tar.gz:
tar -tzf archivefile.tar.gz