<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XCTRL</title>
	<atom:link href="http://xctrl.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://xctrl.ru</link>
	<description>Ещё один сайт на WordPress</description>
	<lastBuildDate>Mon, 24 Oct 2011 06:28:53 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Авторизация на perl</title>
		<link>http://xctrl.ru/2011/07/21/avtorizaciya-na-perl/</link>
		<comments>http://xctrl.ru/2011/07/21/avtorizaciya-na-perl/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 10:37:40 +0000</pubDate>
		<dc:creator>cbetmactep</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://xctrl.ru/?p=31</guid>
		<description><![CDATA[Не знаю на сколько этой сейчас актуально, но пришлось столкнуться с такой задачей. Не смотря на большое количество готовых решений, которые, как кажется на первый взгляд оптимально для этого подходят, но выбор остановился на этом варианте. Рассмотрим по шагам эту работу. Для начала определяем константы TRUE и FALSE, далее указываем на файл в котором хранятся [...]]]></description>
			<content:encoded><![CDATA[<p>Не знаю на сколько этой сейчас актуально, но пришлось столкнуться с такой задачей. Не смотря на большое количество готовых решений, которые, как кажется на первый взгляд оптимально для этого подходят, но выбор остановился на этом варианте.</p>
<p><span id="more-31"></span></p>
<p>Рассмотрим по шагам эту работу. Для начала определяем константы TRUE и FALSE, далее указываем на файл в котором хранятся зашифрованные пароли. Получаем данные с формы (хотя их можно получить разными способами). Далее пытаемся открыть файл с паролями и в случае успеха предварительно блокируем файл и после считывает информации из него снимаем блокировку и закрываем. В цикле производим перебор строк из файла и в той строке где находим имя пользователя, а когда находим стандартной функцией crypt() шифруем принятый пароль и сверяем в случае успеха возвращаем TRUE, в противном FALSE.</p>
<p>Вот листинг:</p>
<pre class="brush: perl; gutter: true; first-line: 1">use constant TRUE =&gt; 1;
use constant FALSE =&gt; 0;

sub auth
{
	my $file = "file.pass";
	$upass = $form{'password'};
	$uname = $form{'login'};
	open (SHADOW, "&lt;$shadow") or die "Internal system error: $!";
	flock (SHADOW, 2) or die "Internal lock error: $!";
	@shadows=;
	flock SHADOW, 8;
	close SHADOW;
	foreach $line(@shadows)
	{
		chomp($line);
		($cuser, $cpass, $r) = split /\t/, $line, 3;
		if ($cuser eq $uname)
			$spass = $cpass;
		if ( crypt ($upass, $spass) eq $spass)
			return TRUE;
		else
			print FALSE;
	}
}</pre>
<p>Следует учитывать, что данный метод не является самым безопасным, помните самое главное &#8212; не запускайте никакие программы от имени суперпользователя (root), так как это чревато самыми разными последствиями.</p>
]]></content:encoded>
			<wfw:commentRss>http://xctrl.ru/2011/07/21/avtorizaciya-na-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl. Строковые функции.</title>
		<link>http://xctrl.ru/2011/07/20/perl-strokovye-funkcii/</link>
		<comments>http://xctrl.ru/2011/07/20/perl-strokovye-funkcii/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 11:09:12 +0000</pubDate>
		<dc:creator>cbetmactep</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://xctrl.ru/?p=26</guid>
		<description><![CDATA[Язык программирования Perl очень удобно использовать для создания логов и отчетов. И как правило приходится сталкиваться с обработкой строк. Хочу привести наиболее используемые строковые функции в этом языке программирования. chomp &#8212; удаляет последний символ строки в том случае, если он является символом новой строки. Пример использования: @Data=&#60;STDIN&#62;; foreach(@Data) { chomp; print if /^From:/; } chop [...]]]></description>
			<content:encoded><![CDATA[<p>Язык программирования Perl очень удобно использовать для создания логов и отчетов. И как правило приходится сталкиваться с обработкой строк. Хочу привести наиболее используемые строковые функции в этом языке программирования.</p>
<p><span id="more-26"></span></p>
<p><strong>chomp &#8212; </strong>удаляет последний символ строки в том случае, если он является символом новой строки. Пример использования:</p>
<pre class="brush: perl; gutter: true; first-line: 1">@Data=&lt;STDIN&gt;;
foreach(@Data)
{
	chomp;
	print if /^From:/;
}</pre>
<p><strong>chop</strong> &#8212; удаляет последний символ строки и возвращает строку. Пример:</p>
<pre class="brush: perl; gutter: true; first-line: 1">$_ = 'hello!';
chop;
print; # выведет hello</pre>
<p><strong>crypt</strong> &#8212; используется для однонаправленного шифрования строки. Принимает 2 аргумента. Первый шифруемая строка, второй &#8212; соль. Данная функция может быть использована скажем при регистрации, для форм входа и тд. Пример:</p>
<pre class="brush: perl; gutter: true; first-line: 1">@saltair = ('A'..'Z', 'a'..'z', '0'..'9');
$salt = $saltair[rand(@saltair)] . $saltair[rand(@saltair)];
$crypted_password = crypt($plain_password, $salt);</pre>
<p><strong>index</strong> &#8212; производит поиск заданной подстроки в строке, возвращает позицию символа и значение -1 в случае неудачи. Пример:</p>
<pre class="brush: perl; gutter: true; first-line: 1">index('Hello!', '!');</pre>
<p><strong>lc</strong> &#8212; в заданной строке преобразует все прописные буквы в строчные.<br />
<strong>lcfirst</strong> &#8212; в заданной строке преобразует первую букву в строчную. Как и для функции lc если используется use local, то используются текущие настройки локализации.<br />
lenght &#8212; вычисляет длину строки.<br />
rindex &#8212; производит поиск заданной подстроке в строке, в обратном порядке. Возвращает позицию символа или значение -1 в случае неудачи.<br />
substr &#8212; извлекает из заданной строки, начиная с заданного символа подстроку заданной длинны. Чтобы было понятней пример:</p>
<pre class="brush: perl; gutter: true; first-line: 1">$sub_str = substr($string, $position, $length);</pre>
<p>Параметр $position может принимать как положительные так и отрицательные значения. В случае присвоения отрицательного значения отчет происходит от конца строки. Параметр $length, при необходимости, может быть пропущен.<br />
uc &#8212; действует аналогично lc, но преобразует все строчные буквы в прописные.<br />
ucfirst &#8212; действует аналогично lcfirst. преобразую первую букву строки в прописную. При использовании use local применяются текущие настройки локализации.</p>
<p>На этом описание строковых функций Perl можно считать завершенным.</p>
]]></content:encoded>
			<wfw:commentRss>http://xctrl.ru/2011/07/20/perl-strokovye-funkcii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML &#8212; учебник. О таблицах.</title>
		<link>http://xctrl.ru/2011/07/18/html-table/</link>
		<comments>http://xctrl.ru/2011/07/18/html-table/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 11:02:44 +0000</pubDate>
		<dc:creator>cbetmactep</dc:creator>
				<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://xctrl.ru/?p=20</guid>
		<description><![CDATA[Первый пост в этом блоге я хочу посвятить таблицам, поскольку с ними довольно часто приходится иметь дело. В интернете ещё много сайтов которые сверстаны при помощи таблиц, где ячейки таблицы являются альтернативой блокам. Самое основное понимать, что таблица &#8212; способ представления данных, а не метод решения дизайнерской задачи. Приступим к описанию тэга table и связанных [...]]]></description>
			<content:encoded><![CDATA[<p>Первый пост в этом блоге я хочу посвятить таблицам, поскольку с ними довольно часто приходится иметь дело. В интернете ещё много сайтов которые сверстаны при помощи таблиц, где ячейки таблицы являются альтернативой блокам. <span style="color: #ff0000;">Самое основное понимать, что таблица &#8212; способ представления данных, а не метод решения дизайнерской задачи</span>.</p>
<p><span id="more-20"></span></p>
<p>Приступим к описанию тэга table и связанных с ним тэгов. Как правило, обычная таблица выглядит следующим образом:</p>
<pre class="brush: html; gutter: true; first-line: 1">&lt;!-- Начало таблицы --&gt;
&lt;table&gt;
	&lt;!-- Начало строки --&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;!-- Ячейка таблицы --&gt;&lt;/td&gt;
	&lt;!-- Конец строки --&gt;
	&lt;/tr&gt;
&lt;!-- Конец таблицы --&gt;
&lt;/table&gt;</pre>
<p>Тэг table обладает следующими параметрами:</p>
<ul>
<li><strong>align</strong> &#8212; горизонтальное выравнивание текста в таблице. Принимает следующие значения:</li>
<ul>
<li>left &#8212; по левому краю</li>
<li>center &#8212; по центру</li>
<li>right &#8212; по правому краю</li>
</ul>
<li><strong>background</strong> &#8212; задает фоновую картинку или цвет заливки ячейки.</li>
<li><strong>border</strong> &#8212; толщина рамки таблицы.</li>
<li><strong>bordercolor</strong> &#8212; цвет заливки рамки таблицы и используется только вместе с параметром border.</li>
<li><strong>cellspacing</strong> &#8212; расстояние между рамками смежных ячеек.</li>
<li><strong>cellpadding</strong> &#8212; отступ от рамки до текста(данных).</li>
<li><strong>frame</strong> &#8212; при помощи этого атрибута можно задать видимость рамок таблицы. Вот список его параметров:</li>
<ul>
<li>above &#8212; только верхняя рамка.</li>
<li>bellow &#8212; только нижняя рамка.</li>
<li>hsides &#8212; только верхняя и нижняя рамка.</li>
<li>lhs &#8212; только левая рамка.</li>
<li>rhs &#8212; только правая рамка.</li>
<li>vsides &#8212; только левая и правая рамка.</li>
</ul>
<li><strong>height</strong> &#8212; высота таблицы.</li>
<li>rules &#8212; позволяет задавать отображение линий внутри таблицы(рамки ячеек):</li>
<ul>
<li>all &#8212; линии отображаются между строками и столбцами.</li>
<li>cols &#8212; линии отображаются между столбцами.</li>
<li>groups &#8212; линии отображаются между группами &lt;thead&gt; &lt;tbody&gt; &lt;tfoot&gt;.</li>
<li>none &#8212; линии не отображаются (по умолчанию).</li>
<li>rows &#8212; линии отображаются между всеми строками.</li>
</ul>
<li><strong>valign</strong> &#8212; вертикальное выравнивание текста в таблице. Принимает следующие значения:</li>
<ul>
<li>top &#8212; по верхнему краю.</li>
<li>middle &#8212; по центру</li>
<li>bottom &#8212; по нижнему краю.</li>
</ul>
<li><strong>width</strong> &#8212; ширина таблицы.</li>
</ul>
<div>Рассмотрим тэги, которые связанные с тэгом table. Тэг caption &#8212; заголовок таблицы.</div>
<div>
<pre class="brush: css; gutter: true; first-line: 1">&lt;!-- Начало таблицы --&gt;
&lt;table&gt;
        &lt;caption&gt;Заголовок&lt;/caption&gt;
	&lt;!-- Начало строки --&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;!-- Ячейка таблицы --&gt;&lt;/td&gt;
	&lt;!-- Конец строки --&gt;
	&lt;/tr&gt;
&lt;!-- Конец таблицы --&gt;
&lt;/table&gt;</pre>
</div>
<p>Как видно из примера данный тэг всегда располагается внутри таблицы. Подпись всегда центрирована по горизонтали находится над таблицей. У тэга присутсвует только один параметр:</p>
<ul>
<li>align &#8212; расположение подписи. Принимает значения:</li>
<ul>
<li>top &#8212; над таблицей. Данное значение по умолчанию</li>
<li>bottom &#8212; под таблицей.</li>
</ul>
</ul>
<div>И  в завершении рассмотрим тэги &lt;thead&gt; &lt;tbody&gt; и &lt;tfoot&gt;.</div>
<div>
<pre class="brush: html; gutter: true; first-line: 1">&lt;table&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Заголовок 1&lt;/th&gt;
			&lt;th&gt;Заголовок 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;Значение 1&lt;/td&gt;
			&lt;td&gt;Значение 1&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
	&lt;tfoot&gt;
		&lt;tr&gt;
			&lt;td colspan="2"&gt;Объединённый результат&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tfoot&gt;
&lt;/table&gt;</pre>
</div>
<p>Рассмотрим вышеприведённые тэги:</p>
<ul>
<li><strong>thead</strong> (table head) &#8212; указывает на то, что данные в этих ячейках не содержится, как правило здесь располагаются заголовки колонок таблицы.</li>
<li><strong>tr </strong>(table row) &#8212; обозначает строку таблицы.<strong> </strong></li>
<li><strong>th</strong> - в данном случает указывает на ячейку заголовка. данный тэг используется только в теге thead.</li>
<li><strong>tbody </strong>(table body) &#8212; обозначает тело таблицы.</li>
<li><strong>td</strong> (table data) &#8212; указывает на ячейки данных. Следует у данного тэга отметить 2 параметра:</li>
<ul>
<li>rowspan &#8212; объединяет строки(склеивает)</li>
<li>colspan &#8212; объединяет столбцы</li>
</ul>
<li><strong>tfoot</strong> (table footer) &#8212; &#171;подвал&#187; таблицы используется для сводных данных</li>
</ul>
<div>О таблицах мне больше нечего добавить в данном разделе. Позже я опишу CSS свойства таблиц, а также пару способов, как таблицы не использовать для представления данных.</div>
<div>Если нужны примеры пишите в комментарии. Будут добавлены.</div>
]]></content:encoded>
			<wfw:commentRss>http://xctrl.ru/2011/07/18/html-table/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

