<?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>Testing in progress...</title>
	<atom:link href="http://cyfive.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://cyfive.ru</link>
	<description>15% completed</description>
	<lastBuildDate>Tue, 02 Aug 2011 16:04:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Для чего нужно техническое задание</title>
		<link>http://cyfive.ru/2011/08/dlya-chego-nuzhno-tz/</link>
		<comments>http://cyfive.ru/2011/08/dlya-chego-nuzhno-tz/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 16:04:38 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[ИТ менеджмент]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=150</guid>
		<description><![CDATA[Существует множество методологий, которые позволяют эффективно вести разработку, но в большинстве случаев применяется одна под названием &#171;на коленке&#187;. Обычно разработка &#171;на коленке&#187; ведется в компаниях с маленьким штатом ИТ специалистов или просто так сложилось традиционно. В этой заметке я хочу рассказать свое мнение как сделать первый шаг к нормальной разработке программного обеспечения. Один из первых [...]]]></description>
			<content:encoded><![CDATA[<p>Существует множество методологий, которые позволяют эффективно вести разработку, но в большинстве случаев применяется одна под названием &#171;на коленке&#187;. Обычно разработка &#171;на коленке&#187; ведется в компаниях с маленьким штатом ИТ специалистов или просто так сложилось традиционно. В этой заметке я хочу рассказать свое мнение как сделать первый шаг к нормальной разработке программного обеспечения.</p>
<p><span id="more-150"></span>Один из первых шагов к началу это составление технических заданий на разработки. Давайте рассмотрим частые проблемы которые возникают при работе на &#171;устных задачах&#187; (такое как правило практикуется при разработке в 1С:Предприятии) и как техническое задание позволяет их решить.</p>
<h3>Разработки &#171;однодневки&#187;</h3>
<p>Что это такое? Это разработки, которыми будут пользоваться очень редко или вообще один раз, например когда пользователи не хотят составлять разово отчет в excel и требуют его разработку, а воспользовавшись им забывают про него (в одной компании, где мне довелось работать, в 1С:Предприятии 7.7 более сотни внешних отчетов, а пользовались от силы десятком). Как техническое задание помогает в борьбе с такими разработками? Да очень просто, зачастую людям просто лень его составлять и им проще взять в руки excel (Open office Сalc) и разово составить отчет, или прсто руками провести изменение пары десятков записей в БД, и человек видя, что трудозатраты на составление технического задания много больше, чем сделать ту-же работу руками, просто делает ее руками.</p>
<h3>Сделай то, не знаю что, сделай так, не знаю как</h3>
<p>Вторая проблема &#8212; это невнятные требования к продукту который хочет пользователь. Тут техническое задание помогает убить сразу несколько зайцев. Во-первых, состявляя техническое задание пользователь сам начинает понимать конечные требования  к продукту. Во-вторых, разработчику проще работать, так как ему не придется думать как пользователя, дкмать как пользователь и о пользователе. И в-третьих, по техническому заданию идет сдача продукта, и как следствие фразы &#171;а  вот тут розочу повесьте, а это передвинте сюда&#187; отпадают сами собой.</p>
<h3>Как писать техническое задание?</h3>
<p>Прежде чем ответить на этот вопрос, нужно учесть, что пользователи в своем большинстве будут саботировать написание технических заданий. Саботаж будет выражаться в отписках в четыре-пять строк, криках, что мы не программисты и не знаем ничего и тому подобных вещей. В этом вопросе стоит проявить упорство, если вы будете брать в работу формальные отписки в четыре строчки с названием &#171;Техническое задание&#187;, то лучше этого вообще не делать.</p>
<p>Так всетаки, как писать техническое задание? Все очен ь просто, не стоит заставлять пользователя вдаваться в технические детали задачи, от него требуется только то как должен выглядеть конечный результат.</p>
<p>Примерный план такой:</p>
<ol>
<li>цель разработки и ее обоснование;</li>
<li>используемые средства;</li>
<li>описания бизнес процессов (если есть);</li>
<li>само задание с примерами входных и выходных форм.</li>
</ol>
<p>После того как вы определились с тем, что пользователи будут писать техническое задание, вам необходимо определить порядок его утверждения, это неоходимо, что-бы не было горящих задач. Кстати в большинстве случаев, утверждающие не вникают в суть (да, что там говорить, не читают даже) того, что утверждают, но это очень быстро устраняется, после того как техническое задание вернется несколько раз на доработку и уточнение.</p>
<h3>Заключение</h3>
<p>И, напоследок, запомните, что техническое задание, это ваша защита при сдаче разработки заказчику, и если вы примете некачественное техническое задание в работу, то такая передача и будет, и у вас не будет аргументов в свою защиту. Зачастую самая простая разработка начинает бесконечно возвращаться на доработку по этой причине.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2011/08/dlya-chego-nuzhno-tz/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL: Обновление записи другой записью из той-же таблицы в MySQL</title>
		<link>http://cyfive.ru/2011/04/sql-update-from-one-table/</link>
		<comments>http://cyfive.ru/2011/04/sql-update-from-one-table/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 03:07:36 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=120</guid>
		<description><![CDATA[Исходные данные У нас есть таблица OUR_TABLE с колонками: ID:INT; COL1: VARCHAR(15); COL2: VARCHAR(15); В ней есть две записи: ID COL1 COL2 1 Колонка 1-1 Колонка 2-1 2 Колонка 2-1 Колонка 2-2 Наша задача заменить значение в первой строке в колонке COL2 на соответствующее значение из второй строки. Решение На вскидку нам приходит решение: 1 [...]]]></description>
			<content:encoded><![CDATA[<h3>Исходные данные</h3>
<p>У нас есть таблица<strong><em> OUR_TABLE </em></strong>с колонками:</p>
<ul>
<li>ID:INT;</li>
<li>COL1: VARCHAR(15);</li>
<li>COL2: VARCHAR(15);</li>
</ul>
<p>В ней есть две записи:</p>
<table>
<tbody>
<tr>
<th>ID</th>
<th>COL1</th>
<th>COL2</th>
</tr>
<tr>
<td>1</td>
<td>Колонка 1-1</td>
<td>Колонка 2-1</td>
</tr>
<tr>
<td>2</td>
<td>Колонка 2-1</td>
<td>Колонка 2-2</td>
</tr>
</tbody>
</table>
<p>Наша задача заменить значение в первой строке в колонке COL2 на соответствующее значение из второй строки.</p>
<p><span id="more-120"></span></p>
<h3>Решение</h3>
<p>На вскидку нам приходит решение:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="sql"><span class="kw1">UPDATE</span> our_table
<span class="kw1">SET</span>
   col2 <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw1">SELECT</span> col2 <span class="kw1">FROM</span> our_table <span class="kw1">WHERE</span> id <span class="sy0">=</span> <span class="nu0">2</span><span class="br0">&#41;</span>
<span class="kw1">WHERE</span> id <span class="sy0">=</span> <span class="nu0">1</span></pre></td></tr></table></div>

<p>Но не тут-то было! MySQL выдаст вам ошибку, которую можно интерпретировать очень просто, во вложенном подзапросе не может фигурировать обновляемая таблица. Возникает вопрос, как нам быть? Ведь хочется все сделать красиво&#8230; Курение документации по MySQL подсказало решение: в синтаксисе UPDATE можно использовать соединения (<em><strong>JOIN</strong></em>), и вот оно готовое рабочее решение:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="sql"><span class="kw1">UPDATE</span> our_table ot
<span class="kw1">LEFT</span> <span class="kw1">JOIN</span> <span class="br0">&#40;</span>
   <span class="kw1">SELECT</span>
       <span class="nu0">1</span> <span class="kw1">AS</span> id<span class="sy0">,</span> otj<span class="sy0">.</span>col2
   <span class="kw1">FROM</span> our_table otj
   <span class="kw1">WHERE</span> otj<span class="sy0">.</span>id <span class="sy0">=</span> <span class="nu0">2</span>
<span class="br0">&#41;</span> ou <span class="kw1">ON</span> ou<span class="sy0">.</span>id <span class="sy0">=</span> ot<span class="sy0">.</span>id
<span class="kw1">SET</span>
    ot<span class="sy0">.</span>col2 <span class="sy0">=</span> ou<span class="sy0">.</span>col2
<span class="kw1">WHERE</span> ot<span class="sy0">.</span>id <span class="sy0">=</span> <span class="nu0">2</span></pre></td></tr></table></div>

<h3>Практическое применение</h3>
<p>Как это использовать на практике? Просто, вот пример как в phpBB скопировать одну запись на место другой:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php"><span class="re0">$sql</span> <span class="sy0">=</span> <span class="st0">&quot;UPDATE &quot;</span><span class="sy0">.</span>POSTS_TEXT_TABLE<span class="sy0">.</span><span class="st0">&quot; ptt1
       LEFT JOIN (
            SELECT
              &quot;</span><span class="sy0">.</span><span class="re0">$new_topic</span><span class="br0">&#91;</span><span class="st_h">'topic_first_post_id'</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot; post_id,
	      ptt.bbcode_uid, ptt.post_subject, ptt.post_text
            FROM &quot;</span><span class="sy0">.</span>POSTS_TEXT_TABLE<span class="sy0">.</span><span class="st0">&quot; ptt
            WHERE ptt.post_id = &quot;</span><span class="sy0">.</span><span class="re0">$topic</span><span class="br0">&#91;</span><span class="st_h">'topic_first_post_id'</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;
       ) ptt2 ON ptt1.post_id = ptt2.post_id
       SET ptt1.bbcode_uid = ptt2.bbcode_uid,
           ptt1.post_subject = ptt2.post_subject,
           ptt1.post_text = ptt2.post_text
       WHERE ptt1.post_id = &quot;</span><span class="sy0">.</span><span class="re0">$new_topic</span><span class="br0">&#91;</span><span class="st_h">'topic_first_post_id'</span><span class="br0">&#93;</span><span class="sy0">;</span></pre></td></tr></table></div>

<h3>Заключение</h3>
<p>К чему такие сложности? Производительность складывается из мелочей, и одной из них является то, что мы лишний раз не передаем данные на клиента (как было сказано в одной из предыдущих моих записей) передача данных на клиента после выполнения запроса самая узкая часть в производительности.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2011/04/sql-update-from-one-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Нужен ли вашей компании штатный программист 1С?</title>
		<link>http://cyfive.ru/2011/03/nuzhen-li-kompanii-programmist-1s/</link>
		<comments>http://cyfive.ru/2011/03/nuzhen-li-kompanii-programmist-1s/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 18:00:38 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[1C:Предприятие 7.7]]></category>
		<category><![CDATA[1С:Предприятие 8.х]]></category>
		<category><![CDATA[ИТ менеджмент]]></category>
		<category><![CDATA[1С:Предприятие 7.7]]></category>
		<category><![CDATA[1С:Предприятие 8.X]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=65</guid>
		<description><![CDATA[Я на протяжении долгого времени работаю на должностях в той или иной степени связанных с программированием на платформе 1С:Предприятие разных версий, и все больше убеждаюсь, что должность программиста 1С не нужна в компаниях. В этой статье я попытаюсь раскрыть свои мысли на эту тему. Прежде чем начать свое повествование, стоит немного остановиться на способах оценки [...]]]></description>
			<content:encoded><![CDATA[<p>Я на протяжении долгого времени работаю на должностях в той или иной степени связанных с программированием на платформе 1С:Предприятие разных версий, и все больше убеждаюсь, что должность программиста 1С не нужна в компаниях. В этой статье я попытаюсь раскрыть свои мысли на эту тему.</p>
<p><span id="more-65"></span></p>
<p>Прежде чем начать свое повествование, стоит немного остановиться на способах оценки стоимости того или иного программного обеспечения. Самих способов оценки очень много, но мы остановимся на популярном нынче методе под названием совокупная стоимость владения. Суть метода заключается в том, что стоимость программного обеспечения (да и любой информационной системы в целом) собирается из двух составляющих, прямые затраты (стоимость программного обеспечения, материалов, зароботной платы сотрудников, оплаты консультантов) и непрямых затрат (например, оплата командировок, потери прибыли от простоев информационной системы). Таким образом мы видим, что со временем стоимость программного обеспечения (или информационной системы в целом) только увеличивается.</p>
<p>А теперь давайте рассмотрим использование 1С:Предприятия (в принципе подобные рассуждения справедливы для любой программы или информационной системы) в свете совокупной стоимости владения. Для примера возьмем конфигурацию 1С:Предприятие 8.1 Управление торговлей (далее по тексту программный продукт) на 10 рабочих мест и посчитаем как будет изменяться его стоимость с течением времени (первый год).</p>
<p><strong>Соберем все прямые затраты которые явно на поверхности:</strong></p>
<table>
<tbody>
<tr>
<td style="text-align: center;"><strong>Наименование</strong></td>
<td style="text-align: center;"><strong>Кол-во</strong></td>
<td style="text-align: center;"><strong>Цена</strong></td>
<td style="text-align: center;"><strong>Сумма</strong></td>
</tr>
<tr>
<td>1C:Предприятие 8.1 Управление торговлей</td>
<td style="text-align: center;">1</td>
<td style="text-align: right;">14500</td>
<td style="text-align: right;">14500</td>
</tr>
<tr>
<td>1С:Предприятие 8.1 Лицензия на 5 рабочих мест</td>
<td style="text-align: center;">1</td>
<td style="text-align: right;">18000</td>
<td style="text-align: right;">18000</td>
</tr>
<tr>
<td>Внедрение 1С:Предприятия 8.1. Управление торговлей</td>
<td style="text-align: center;">1</td>
<td style="text-align: right;">20000</td>
<td style="text-align: right;">20000</td>
</tr>
<tr>
<td>Заработная плата программиста 1С</td>
<td style="text-align: center;">12 мес.</td>
<td style="text-align: right;">20000</td>
<td style="text-align: right;">240000</td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong>Итого:</strong></td>
<td style="text-align: right;"><strong>292500</strong></td>
</tr>
<tr>
<td style="text-align: left;"><strong>Непрямые затраты:</strong></td>
<td style="text-align: center;"><strong>Кол-во</strong></td>
<td style="text-align: center;"><strong>Цена</strong></td>
<td style="text-align: center;"><strong>Сумма</strong></td>
</tr>
<tr>
<td>Налоги с фонда оплаты труда (это непрямые затраты, которые так-же отнесем на содержание программного продукта)</td>
<td style="text-align: center;">12</td>
<td style="text-align: right;">7400</td>
<td style="text-align: right;">88800</td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong>Итого:</strong></td>
<td style="text-align: right;"><strong>88800<br />
</strong></td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"><strong>Всего:</strong></td>
<td style="text-align: right;"><strong>381300<br />
</strong></td>
</tr>
</tbody>
</table>
<p>Как видно из приведенных расчетов, с каждым годом совокупная стоимость владения нашим программным продуктом будет увеличиваться на сумму, как минимум, заработной платы программиста 1С, и налоги которые вы заплатите с суммы его заработной платы и будет составлять: 328 800 рублей (для упрощения будем считать, что заработная плата программиста не повышается с течением времени). Теперь мы видим, что, например, через 5 лет совокупная стоимость владения составит примерно 1,7 млн. рублей.</p>
<p>В наших расчетах совокупной стоимости владения четко видно, что основная масса затрат идет на оплату труда персонала который занимается сопровождением программного продукта. Давайте теперь рассмотрим как реально выглядит работа программиста 1С. Чем обычно занимается программист 1С? Наверное вы думаете, что он программирует на платформе 1С:Предприятие, а вот и нет! 90% своего рабочего времени он занимается устранением последствий некомпетентности сотрудников компании!</p>
<p>В свое время мной проводилась аналитика задач поступавших от бухгалтерии, так вот, статистика там была неутешительная 80% заданий составляли банальное незнание бухгалтерами программного продукта и только 20% с натяжкой можно было отнести к задачам, где требовалось вмешательство программиста (а точнее высококвалифицированного специалиста). Помимо этого, даже если программисту придется все таки заняться разработкой на платформе 1С:Предприятие, то и тут перспектива вполне может оказаться не радужной, основные задачи которые решает программист, это создание новых отчетов, и тут, по личному опыту, 90% отчетов однодневок, т.е. тех которые нужны для разового извлечения данных (например в одной компании из более чем 100 разных отчетов, написанных программистами, использовалось всего 12 отчетов). И теперь, все таки иногда, требуется вмешательство программиста для расширения функционала программного продукта, но как часто? Да изменения в конфигурации 1С:Предприятия любой версии вносятся часто,  этот факт отрицать трудно, но на фоне остальных задач они занимают лишь незначительную часть рабочего времени программиста 1С.</p>
<p>Вот мы с вами увидели, чем в действительности занимается программист 1С на вашем предприятии, но по прежнему я думаю не убедил вас в том, что в штате эта должность не нужна, поэтому давайте подробнее остановимся на вариантах оптимизации затрат на содержание нашего программного продукта.</p>
<p>Во-первых, многих ситуаций когда требуется вмешательство программиста можно избежать, если пользователи будут хорошо знать программный продукт. Обращаясь к своему многолетнему опыту, могу сказать, за все время работы мне встретилось от силы 10 человек, которые понимали как работает 1С, что она может, и чего в ней нельзя делать, остальные имели навыки на уровне создать и распечатать документ, сформировать несложный отчет. Как раз от таких пользователей и возникало больше всего проблем. Путь устранения данной ситуации простой, при приеме на работу, действительно проверять навыки работы сотрудника на компьютере. А уже работающих у вас сотрудников обучать. Компания 1С дает возможность подтвердить знания пользователя сдачей экзамена на получение сертификата 1С:Профессионал, могу вас заверить, что человек сдавший на этот сертификат будет знать программный продукт действительно как профессионал. Положа руку на сердце, скажу, я сам не смог пройти теста без подготовки, хотя на тот момент я имел уже более чем 5-и летний опыт работы в должностях так или иначе связанных с программированием в 1С.</p>
<p>Во-вторых, минимизируйте разработку отчетов-однодневок. Я считаю, что отчет которым воспользуются один раз, но потребовавший от программиста работы целый день, можно считать золотым. Многие крупные компании решают эту задачу путем обязательного требования от заказчика отчета составления технического задания с обоснованием по частоте использования его и экономии рабочего времени. Как правило на этом этапе львиная доля &#171;хочух&#187; отметается, по причине того, что затраты времени на составление технического задания превышают затраты сбора необходимой информации с помощью других средств, а до программистов доходят действительно необходимые в работе отчеты.</p>
<p>И, на третье, самое вкусное, изменения в программный продукт для адаптации под новые бизнес процессы, их избежать полностью невозможно, как я уже говорил, но и на них можно сэкономить, просто нужно воспользоваться услугами аутсорсинга. Но прежде всего составьте подробное техническое задание того, что вы хотите изменить, подумайте, насколько возрастет продуктивность труда ваших сотрудников, если вы внесете эти изменения в конфигурацию, но при этом не забывайте, что чем больше вы отклонитесь от типового решения, тем дороже для вас будет стоить техническая поддержка вашего программного продукта, что, соответственно увеличивает и без того уже не малую стоимость совокупного владения нашим программным продуктом.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2011/03/nuzhen-li-kompanii-programmist-1s/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Немного об оптимизации SQL запросов</title>
		<link>http://cyfive.ru/2011/03/optimize-sql-query/</link>
		<comments>http://cyfive.ru/2011/03/optimize-sql-query/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 17:14:33 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=108</guid>
		<description><![CDATA[В этой статье мне хочется высказать немного своих мыслей об оптимизации SQL запросов. Не так давно мне потребовалось перевести  несколько таблиц в MySQL на новый движок одного интернет ресурса. Сами таблицы (по меркам серверов баз данных) были не большие, но время работы конвертора меня ввергло в тихий шок, пришлось напрячь все свои извилины, вспомнить былой [...]]]></description>
			<content:encoded><![CDATA[<p>В этой статье мне хочется высказать немного своих мыслей об оптимизации SQL запросов. Не так давно мне потребовалось перевести  несколько таблиц в MySQL на новый движок одного интернет ресурса. Сами таблицы (по меркам серверов баз данных) были не большие, но время работы конвертора меня ввергло в тихий шок, пришлось напрячь все свои извилины, вспомнить былой опыт и вот она, долгожданная победа сокращение времени конвертации с 8 часов до 48 секунд.</p>
<p><span id="more-108"></span>И так, приступим. Прежде всего, схема задействованных таблиц (не пинайте за использование схем UML, в Dia просто не было подходящих картинок):</p>
<p><a href="http://cyfive.ru/wp-content/uploads/2011/03/scheme.png"><img class="aligncenter size-full wp-image-110" title="Схема таблиц" src="http://cyfive.ru/wp-content/uploads/2011/03/статья.png" alt="Схема таблиц" width="519" height="205" /></a></p>
<p>Стрелками обозначены связи между таблицами. Наша задача простая, в таблице sp_create в поле size записана строка с разделителями в которой содержатся варианты размеров для каждой записи, в таблице sp_user в поле size один из вариантов размера строкой, нам нужно:</p>
<ol>
<li>все строки с разделителями считать, разложить на составляющие и записать отдельными строками в таблицу sp_rows;</li>
<li>в таблице sp_user текстовое поле size сопоставить по полям art_id и sp_row_value с таблицей sp_rows и записать соответствующий идентификатор записи.</li>
</ol>
<p>Язык написания скрипта конвертации php 5, сервер БД MySQL, компьютер на котором проводилась конвертация ноутбук на процессоре Celeron M 1.5 GHz, 1,2 Gb RAM.</p>
<h2>Вариант решения 1: Первый пришедший в голову</h2>
<p>Первое, что пришло в голову это реализация вложенными циклами. Алгоритм такой:</p>
<p style="padding-left: 30px;"><strong> </strong><em>SELECT art_id, size FROM sp_create</em></p>
<p style="padding-left: 30px;">while {</p>
<p style="padding-left: 60px;">while {</p>
<p style="padding-left: 90px;"><em><em>INSERT INTO sp_rows (art_id, sp_row_value) VALUES ([значения])</em></em></p>
<p style="padding-left: 60px;"><em><em>} </em></em></p>
<p style="padding-left: 60px;"><em>SELECT sp_row_id, sp_row_value FROM sp_rows WHERE art_id = [ранее считанный]</em></p>
<p style="padding-left: 60px;"><em>SELECT size FROM sp_user WHERE art_id = <em>[ранее считанный]</em></em></p>
<p style="padding-left: 60px;"><em><em>while { </em></em></p>
<p style="padding-left: 90px;"><em>UPDATE sp_user SET sp_row_id = [значение] </em></p>
<p style="padding-left: 60px;"><em>} </em></p>
<p style="padding-left: 30px;"><em>} </em></p>
<p><em> </em>Первый рабочий запуск на дампе боевой базы заставил меня прослезиться, конвертация длилась 8 часов! И это при том, что я выделил MySQL уже прилично оперативной памяти.</p>
<p>Тут закрадываются мысли об оптимизации, стоит немного объяснить их ход, читая множество обзоров в которых приводится производительность разных SQL серверов невольно приходит в голову &#171;знание&#187;, что операции INSERT и UPDATE на порядок медленнее чем SELECT (строго говоря это так, но все таки тесты немного врут, почему, будет сказано далее) поэтому, первое, что пришло в голову, нужно оптимизировать запись в таблицы. Google подсказал такие слова как LOCK TABLES и BULK INSERT.</p>
<h2>Вариант решения 2: Оптимизация INSERT и UPDATE</h2>
<p>Что такое BULK INSERT? Если кратко и своими словами &#8212; это массовая запись значений одним запросом, или несколькими большими, в нашем случае, MySQL работает с ними охотнее и быстрее. LOCK TABLES &#8212; это блокировка таблиц перед записью, эффект достигается тем, что MySQL не записывает индексы до тех пор пока не будет снята блокировка. Теперь мой скрипт выглядел так:</p>
<p style="padding-left: 30px;"><em>SELECT art_id, size FROM sp_create</em></p>
<p style="padding-left: 30px;">while {</p>
<p style="padding-left: 60px;"><em><em>INSERT INTO sp_rows (art_id, sp_row_value) VALUES ([значения]), <em><em>([значения]), <em><em>([значения]), <em><em>([значения])</em></em></em></em></em></em></em></em></p>
<p style="padding-left: 60px;"><em>SELECT sp_row_id, sp_row_value FROM sp_rows WHERE art_id = [ранее считанный]</em></p>
<p style="padding-left: 60px;"><em>SELECT size FROM sp_user WHERE art_id = <em>[ранее считанный]</em></em></p>
<p style="padding-left: 60px;"><em>LOCK TABLES sp_user WRITE</em></p>
<p style="padding-left: 60px;"><em><em>while { </em></em></p>
<p style="padding-left: 90px;"><em>UPDATE sp_user SET sp_row_id = [значение] </em></p>
<p style="padding-left: 60px;"><em>}</em></p>
<p style="padding-left: 60px;"><em>UNLOCK TABLES </em></p>
<p style="padding-left: 30px;"><em>}</em></p>
<p>Ускорение на лицо, но слезы не перестают течь, конвертация идет 4 часа. Я задаюсь вопросом, что я делаю не так, и почему все так медленно работает. Наступает время смотреть а где у меня самое узкое место? Ставлю MySQL Administrator начинаю мониторинг, и что я вижу? А вижу я, что самое узкое место, это SELECT&#8217;ы, но почему? Все учебники говорят об обратном, но все забывают, что после выполнения SELECT идет передача данных клиенту, и это и есть наше &#171;бутылочное горлышко&#187;! Что имеем, в секунду выполняется в среднем 2500 INSERT&#8217;ов и всего(!) 5 SELECT&#8217;ов. Теперь вооружившись этой информацией, приступаю к оптимизации скрипта.</p>
<h2>Вариант решения 2: Ускоряемся</h2>
<p style="padding-left: 30px;"><em>SELECT art_id, size FROM sp_create</em></p>
<p style="padding-left: 30px;"><em><em>LOCK TABLES sp_create WRITE</em> </em></p>
<p style="padding-left: 30px;">while {</p>
<p style="padding-left: 60px;"><em><em>INSERT INTO sp_rows (art_id, sp_row_value) VALUES ([значения]), <em><em>([значения]), <em><em>([значения]), <em><em>([значения])</em></em></em></em></em></em></em></em></p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;"><em>UNLOCK TABLES</em></p>
<p style="padding-left: 30px;"><em>SELECT sp_row_id, sp_row_value FROM sp_rows</em></p>
<p style="padding-left: 30px;"><em>SELECT size FROM sp_user</em></p>
<p style="padding-left: 30px;"><em>LOCK TABLES sp_user WRITE</em></p>
<p style="padding-left: 30px;"><em><em>while { </em></em></p>
<p style="padding-left: 60px;"><em>UPDATE sp_user SET sp_row_id = [значение] </em></p>
<p style="padding-left: 30px;"><em>}</em></p>
<p style="padding-left: 30px;"><em>UNLOCK TABLES </em></p>
<p>Ура! Вот результат работы: конвертация размеров в sp_create 30 секунд, сопоставление размеров и их запись в sp_user 18 секунд, общее время работы скрипта 48 секунд!</p>
<h2>Выводы</h2>
<p>Какие выводы можно сделать? Очень простые, один большой запрос лучше чем много маленьких (для примера могу сказать, что во время написания скрипта я вывел в браузер массив с выборкой из sp_rows, опера показала, что страница размером была 9,5 мегабайт), так как время передачи информации клиенту сводит на нет все преимущества по скорости выполнения SELECT, если есть возможность, объединяйте INSERT в группы, при долгих массовых вставках или изменениях ставьте блокировку таблицы оператором LOCK TABLES.</p>
<h2>Литература</h2>
<p><a href="http://www.mysql.ru/docs/man/INSERT.html" target="_blank">INSERT</a></p>
<p><a href="http://www.mysql.ru/docs/man/LOCK_TABLES.html" target="_blank">LOCK / UNLOCK TABLES</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2011/03/optimize-sql-query/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Размышления о соискателях&#8230;</title>
		<link>http://cyfive.ru/2010/04/razmishlenia-o-soiskatelah/</link>
		<comments>http://cyfive.ru/2010/04/razmishlenia-o-soiskatelah/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 05:13:30 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[Без рубрики]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=96</guid>
		<description><![CDATA[Когда ищешь работу, не думаешь как выглядит рынок труда для работодателей, но вот мне пришлось искать сотрудника в отдел, и я просто ужаснулся. В этой заметке я хочу поведать свой взгляд на соискателей вакансий в сфере &#171;Информационные технологии и интернет&#187;. Первое, что бросилось в глаза мне, это переизбыток ИТ специалистов, причем 90% кандидатов имеют опыт [...]]]></description>
			<content:encoded><![CDATA[<p>Когда ищешь работу, не думаешь как выглядит рынок труда для работодателей, но вот мне пришлось искать сотрудника в отдел, и я просто ужаснулся. В этой заметке я хочу поведать свой взгляд на соискателей вакансий в сфере &#171;Информационные технологии и интернет&#187;.</p>
<p><span id="more-96"></span>Первое, что бросилось в глаза мне, это переизбыток ИТ специалистов, причем 90% кандидатов имеют опыт работы менее 3-х лет. Из них, примерно половина уже ищет работу по полгода и более.</p>
<p>Второе, большинство соискателей не умею писать резюме. Хуже того большинство резюме написаны так безграмотно, что после их прочтения нет жлания дальше общаться с человеком. Самая распространенная ошибка, это собирание опыта работы не касающегося должности, например, человек пишет, что он работал всю жизнь менеджером по продажам, и на последнем месте был по совместительству сисадмином, вот и решил уйти в ИТ и заняться системным администированием. Помимо этого, люди пытаются впихнуть в резюме навыки, которые они приобрели за свою карьеру, и как правило это выглядит очень нелепо (я сам так делал раньше, но потом перечислил самые весомые), по резюме получается как в поговорке &#171;И кузнец, и жнец, и на дуде игрец&#187;, становится немного не понятно кем хочет работать человек.</p>
<p>Ну и самое последнее, третье, это неадекватность реагирования на вакансии, уважаемые коллеги, прежде чем отправить свое резюме, вначале подумайте, соответствуете ли вы выдвигаемым требованиям к кандидатам хотя-бы на 80%.</p>
<p>Теперь, как составить резюме, прочитав которое с вами захотят общаться? Прежде всего сходите на сайты кадровых ангенств и почитайти их рекомендации к структуре и содержанию резюме. Когда будет готова &#171;рыба&#187;, приступайте к чтению моих советов, которые, в принципе, повторяют советы кадровых агенств, но есть и некоторые нюансы.</p>
<p>Итак:</p>
<p>1. Четко определитесь на какую должность вы претендуете, системный администратор, программист, руководитель отдела. В соответствии с этим делайте акцент на эту должность. Например, вы много работали программистом 1С и решили перейти на системного администратора, тогда не расписывайте какие разработки вы делали в 1С, а делайте упор на администрирование 1С. И одной строчкой можете написать, что еще можете программировать в 1С, я думаю если потенциальному работодателю станет интересно, он уточнит этот пункт подробнее.</p>
<p>2. Не перечисляйте много опыта работы, три последние места будет достаточно, только укажите одной строкой сколько у вас суммарный стаж работы по специальности. Обязательно указывайте чем занимались работая в той или иной компании, это позволит вам избежать неадекватных наименований должностей (например, инженер-программист, а реально системный администратор). При перечислении обязанностей, так-же старайтесь не указывать лишнего и держаться в ключе выбранной вами должности.</p>
<p>3. Контактные данные. Самая распространенная ошибка, это указание несерьезного адреса электронной почты, поверьте мне, адрес типа darkangel89@домен.ру или, что еще хуже, stervec@домен.ру смотрятся весьма не серьезно, тем более он указывается в самом начале. Сейчас не проблема завести себе адрес электронной почты который будет содержать вашу фамилию и имя.</p>
<p>Советы по составлению резюме:</p>
<ul>
<li>если у вас мало или вообще нет опыта &#8212; делайте уклон на образование, самобучаемость;</li>
<li>если у вас недостаточное образование, но есть опыт &#8212; делайте уклон на опыт работы;</li>
<li>если вы хотите сменить профиль &#8212; делайте уклон на выполняемые обязанности по новой специальности.</li>
</ul>
<p>Вот собственно все нехитные советы, которые помогут вам получить больше откликов на ваше резюме.</p>
<p>Искренне желаю успехов в поисках работы, тем более в тяжелые времена мирового фининсово-полового кризиса.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2010/04/razmishlenia-o-soiskatelah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1С:Предприятие 7.7 Продление жизненного цикла</title>
		<link>http://cyfive.ru/2010/03/long-live-1s77/</link>
		<comments>http://cyfive.ru/2010/03/long-live-1s77/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 17:17:37 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[1C:Предприятие 7.7]]></category>
		<category><![CDATA[1С:Предприятие 7.7]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=46</guid>
		<description><![CDATA[На многих предприятиях до сих пор используется 1С:Предприятие 7.7, причины у всех разные, кто-то создал свою оригинальную конфигурацию, у кого-то (особенно в нынешнее время) нет свободных денег на переход. Но 1С:Предприятие 7.7 имеет ряд архитектурных недостатков, которые не позволяют ее полноценно использовать при больших нагрузках. В этой статье я постараюсь обзорно показать пути решения проблем [...]]]></description>
			<content:encoded><![CDATA[<p>На многих предприятиях до сих пор используется 1С:Предприятие 7.7, причины у всех разные, кто-то создал свою оригинальную конфигурацию, у кого-то (особенно в нынешнее время) нет свободных денег на переход. Но 1С:Предприятие 7.7 имеет ряд архитектурных недостатков, которые не позволяют ее полноценно использовать при больших нагрузках. В этой статье я постараюсь обзорно показать пути решения проблем производительности решений на 1С:Предприятии 7.7.</p>
<p><span id="more-46"></span>В свое время 1С: Предприятие 7.7 являлось, пожалуй, самой популярной платформой для создания бизнес приложений в России. И это не удивительно, ведь благодаря наличию встроенного языка программирования, простоте, дешевизне, и открытости типовых конфигураций с ней можно было творить все, что душе угодно, чем, кстати, и занимались отделы ИТ малых, средних и крупных предприятий нашей необъятной Родины. В результате многие крупные компании получили весьма интересные и специфичные конфигурации, которые затруднили переход компаний на 1С:Предприятие восьмой версии, и многие по сей день продолжают использовать семерку. Но у 1С: Предприятия 7.7 есть и свои архитектурные проблемы. И прежде всего это отсутствие масштабируемости, при наступлении определенного числа одновременно работающих пользователей, в результате конструктивных просчетов, наступает состояние когда люди не могут провести или записать документы, а в ответ получают сообщение &#171;Ошибка ожидания блокировки таблицы Журналы&#187;. Вся проблема кроется в том, что записи о всех документах содержатся в одной таблице 1SJOURN, а при записи или проведении документа, 1С: Предприятие 7.7 блокирует эту таблицу, т.е. в один момент возможно проведение только одного документа любого типа. Вторая проблема &#8212; это медленное формирование отчетов, да и вообще разных запросов к остаткам или оборотам, выборки документов, особенно если вы попробуете использовать для этого встроенный язык запросов. На фоне всего этого работа с 1С:Предприятем 7.7 преврящается в сплошное мучение. Каковы пути решения этих проблем? Их несколько:</p>
<ol>
<li> Если у Вас dbf база, то купить SQL версию, конвертировать в нее вашу базу, и на некоторое время вам ее хватит.</li>
<li> Купить более производительное железо, эффект будет заметен сразу но не надолго, все зависит от темпа роста базы.</li>
<li> Выделить специальную базу для формирования отчетов. Такое решение можно увидеть во многих крупных фирмах. По ночам настраивается обновление этой базы, и все пользователи, которым хватит актуальности отчетов в один день, &#171;выгоняются&#187; в нее, тем самым разгружается основная база.</li>
<li> Ревизия конфигурации. Вынесение отдельных операций за пределы модуля проведения документа для сокращения времени транзакции. Применение в отчетах и участках кода ответственных за сбор данных прямых SQL запросов с помощью внешней компоненты 1С++ (они дают прирост скорости на порядок, а то и больше все зависит от правильности составления SQL запроса, проверено на своей конфигурации).</li>
<li> Применение механизма гибких блокировок. Самый пожалуй шаткий путь, ибо очень опасно идти по нему. Если что не так пойдет, то приется отвечать головой за данные.</li>
</ol>
<p>Вот короткий перечень того как можно продлить жизнь 1С: Предприятия 7.7, т.к для многих фирм переход на 8.0 или другой программный продукт может оказаться еще сложнее. Но если Ваша фирма динамично развивается от перехода вас уже скорее всего ничего не спасет, главное при переходе решить а нужна-ли вам 1С или все-таки вы уже выросли из ее архитектуры и вам стоит рассмотреть другие системы.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2010/03/long-live-1s77/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Сэкономь с Linux</title>
		<link>http://cyfive.ru/2010/02/linux-economy/</link>
		<comments>http://cyfive.ru/2010/02/linux-economy/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:43:26 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=44</guid>
		<description><![CDATA[Статья Юлии Невзгодиной для портала Sibnet, в ней я засветился в качестве консультанта по свободным программным продуктам. К сожалению, статья сильно отличается от черновика, но тем не менее полезна для людей которые не знают, что продукции компании Microsoft есть альтернативы.]]></description>
			<content:encoded><![CDATA[<p><a href="http://info.sibnet.ru/?id=266516">Статья Юлии Невзгодиной</a> для портала Sibnet, в ней я засветился в качестве консультанта по свободным программным продуктам.</p>
<p>К сожалению, статья сильно отличается от черновика, но тем не менее полезна для людей которые не знают, что продукции компании Microsoft есть альтернативы.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2010/02/linux-economy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обеспечение комплексной информационной безопасности фирмы</title>
		<link>http://cyfive.ru/2010/02/inf-sec/</link>
		<comments>http://cyfive.ru/2010/02/inf-sec/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 17:15:22 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[Информационная безопасность]]></category>
		<category><![CDATA[информационная безопасность]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=36</guid>
		<description><![CDATA[Эта статья написана мной в 2005 г. для одной фирмы, которая планировала открывать у себя направление по оказанию услуг в сфере информационной безопасности. Фирма так и не открыла тогда нового направления, но статья осталась, и во многом, по моему, она не потеряла своей актуальности. Введение Подходя к решению вопроса обеспечения комплексной информационной безопасности фирмы нужно [...]]]></description>
			<content:encoded><![CDATA[<p>Эта статья написана мной в 2005 г. для одной фирмы, которая планировала открывать у себя направление по оказанию услуг в сфере информационной безопасности. Фирма так и не открыла тогда нового направления, но статья осталась, и во многом, по моему, она не потеряла своей актуальности.<br />
<span id="more-36"></span></p>
<h2>Введение</h2>
<p>Подходя к решению вопроса обеспечения комплексной информационной безопасности фирмы нужно четко определиться с самим понятием. В большинстве случаев под понятием информационная безопасность понимается комплекс мер, призывных ограничить доступ к информационным ресурсам фирмы через общедоступные сети (например X.25, Internet) или, говоря простым языком, защита от хакеров. Но сейчас расширяют это понятие еще одним таким «скромным» дополнением как обеспечение целостности и сохранности информации хранящейся на информационных носителях фирмы.<br />
Итак, информационная безопасность – это комплекс мероприятий направленных на обеспечение целостности и сохранности информации хранимой на информационных носителях фирмы и создание условий при которых возможность утечки информации будет сведена к минимуму, а в случае ее возникновения можно было легко отследить канал утечки.<br />
Мероприятия по обеспечению информационной безопасности делятся на организационные и технические. Организационные мероприятия включают в себя выработку правил работы на компьютерах, обучение персонала, разработку многоуровневой политики доступа к ключевой информации. Технические мероприятия подразумевают под собой настройку и установку специализированного программного обеспечения, внедрение аппаратных средств обеспечения сохранности и защиты информации.<br />
Стоит заметить, что 100% защиты никогда не существует. По этой причине при проектировании системы безопасности обязательным пунктом является создание средств быстрого и с минимальным ущербом восстановления работоспособности системы.<br />
По моему личному опыту на большинстве фирм частично реализуются мероприятия по техническому обеспечению информационной безопасности но они как правило носят хаотический характер и больше напоминают латание дырок на порядком изношенных штанах. Например, многие фирмы используют источники бесперебойного питания на рабочих местах, все фирмы принимают комплекс мер по обеспечению сохранности информации на серверах. Почти все ограничивают доступ в корпоративную сеть из общедоступных сетей. Но во многих случаях этих мер не достаточно и периодически возникают нештатные ситуации с потерей ключевой информации или ее утечкой.<br />
Настоящая статья призвана обозначить часто возникающие проблемы и показать пути их решения.</p>
<h2>Основные угрозы информационной безопасности</h2>
<p>Угрозы информационной безопасности делятся на два основных вида. Первый – это потери информации в результате сбоев или неправильной эксплуатации информационных систем, а второй – утечка ключевой информации. Соответственно каждый вид угроз подразделяется на более мелкие случаи. Давайте рассмотрим их подробнее.<br />
<strong> Потеря информации может произойти в следующих случаях:</strong></p>
<ol>
<li> Действия «непреодолимой» силы – к ним относятся перебои в электроснабжении, пожары, технические неисправности не связанные с эксплуатацией компьютеров, действия окружающей среды. Как правило все эти ситуации возникают по причине неправильной или недостаточной организации технической эксплуатации помещений где находятся компьютеры. Например прорыв системы отопления способен свести на нет все меры защиты информации.</li>
<li> Программно-аппаратный сбой. Неправильная настройка программного обеспечения или неправильный режим эксплуатации рабочих станций или серверов, хаотичность при проектировании и прокладке сети все это может привести к сбоям и потерям информации.</li>
<li> Недостаточная квалификация пользователей. Самая частая и банальная причина потери информации в результате действия вирусов напрямую связана с этим пунктом. Зачастую пользователи сами скачивают из интернета файлы или открывают зараженные вложения в письма не думая о последствиях своих действий.</li>
<li> Неосторожность, повлекшая за собой уничтожение информации.</li>
<li> Преднамеренное уничтожение информации.</li>
</ol>
<p><strong>Утечка информации как правило происходит в следующих случаях:</strong></p>
<ol>
<li>Непреднамеренное раскрытие информации. Многие фирмы никак не следят за использованием служебной информации и поэтому зачастую бухгалтера берут работу на дом в виде баз данных, компьютеры отправляются в ремонт с ключевой информацией.</li>
<li> Преднамеренное хищение информации сотрудником фирмы («инсайдером»).</li>
<li> Кража техники с носителями информации.</li>
<li> Вторжение из вне с целью хищения ключевой информации. Хакерская атака, самый пожалуй редкий случай, но если это произошло, то стоит всерьез задуматься над бюджетом по обеспечению информационной безопасности.</li>
</ol>
<h2>Концепция обеспечения комплексной информационной безопасности.</h2>
<h3>1. Этап.</h3>
<p><strong> На данном этапе исследуется:</strong></p>
<ol>
<li>возможность проникновения в корпоративную сеть через общедоступные сети или модемные пулы;</li>
<li> используемое в фирме программное обеспечение, его версии и наличие в нем критически ошибок дающих возможность провести атаки типа переполнение буфера с возможностью выполнения кода, эскалация прав, отказ в обслуживании, особое внимание уделяется антивирусным программам и актуальности антивирусных баз данных;</li>
<li> аудит рабочих мест на предмет использования приемов социальной инженерии, возможности утечки информации или ее повреждения через данное рабочее место;</li>
<li> политика безопасности в сети, стойкость паролей, частота их смены, распределение прав пользователей, существующая система ограничения доступа и централизованного хранения ключевой информации, наличие доступа в интернет вообще и к каким службам конкретно (ICQ, e-mail, HTTP, FTP, NNTP и т.п.);</li>
<li> аппаратное обеспечения информационных систем, организация рабочих мест пользователей, оборудование серверной, защищенность от аппаратных сбоев, соблюдение основных правил технической эксплуатации помещений;</li>
<li> методика и частота создания резервных копий ключевой информации.</li>
</ol>
<p>Совместно с руководством фирмы и службой внутренней безопасности вырабатывается понятие ключевой информации для данной фирмы, какие внутренние документы будут относиться к ней, разрабатывается многоуровневая внутрифирменная политика доступа к ключевой информации, которая будет основой разработки политики доступа к информации находящейся на сервере и рабочих станциях пользователей.<br />
По результатам первого этапа пишется заключение и рекомендации по улучшению существующей информационной системы с целью повышения ее безопасности. При необходимости составляется техническое задание на проведение работ.</p>
<h3>2. Этап.</h3>
<p>На данном этапе производится внедрение разработанной на первом этапе системы безопасности, обучение пользователей правилам работы в соответствии с новой политикой безопасности, обучение правилам работы в интернет, разъяснение основных угроз при работе в интернет (троянские программы, spyware, фишинг, вирусы, приемы социальной инженерии), обучение работе с новым программным обеспечением.<br />
Установка нового программно-аппаратного обеспечения, его настройка и ввод в эксплуатацию.<br />
По результатам составляется акт выполненных работ, пользователи проходят тестирование.</p>
<h3>3. Этап.</h3>
<p>Периодический, один-два раза в год, аудит информационной системы с целью выявления нарушений выработанных ранее правил информационной безопасности. При необходимости разработка дополнительных рекомендаций по улучшению защищенности информационной систем.<br />
По результатам работы данного этапа составляется заключение о найденных недостатках в обеспечении информационной безопасности, акт выполненных работ.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2010/02/inf-sec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тестовый запуск блога</title>
		<link>http://cyfive.ru/2010/02/betta-test/</link>
		<comments>http://cyfive.ru/2010/02/betta-test/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:11:23 +0000</pubDate>
		<dc:creator>CYFiVE</dc:creator>
				<category><![CDATA[Работа сайта]]></category>
		<category><![CDATA[блог]]></category>

		<guid isPermaLink="false">http://cyfive.ru/?p=5</guid>
		<description><![CDATA[Произведен тестовй запуск блога :) Ура товарищи!]]></description>
			<content:encoded><![CDATA[<p>Вот и свершилось, блог запущен в тестовом режиме, пока тут нет никакой полезной смысловой нагрузки, но тем не менее со временем будет наполнение контентом.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyfive.ru/2010/02/betta-test/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

