<?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>Персональный блог Валерия Леонтьева</title>
	<atom:link href="http://valera.ws/feed/" rel="self" type="application/rss+xml" />
	<link>http://valera.ws</link>
	<description>Блог для публикации интересных личных заметок о работе, жизни, событиях... Digital lifestyle, веб-программирование, администрирование серверов и другое</description>
	<lastBuildDate>Wed, 16 May 2012 09:42:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Я.Субботник в Минске, 2 июня</title>
		<link>http://valera.ws/2012.05.16~ya-subbotnik/</link>
		<comments>http://valera.ws/2012.05.16~ya-subbotnik/#comments</comments>
		<pubDate>Wed, 16 May 2012 09:41:08 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=668</guid>
		<description><![CDATA[Я.Субботник в Минске пройдет 2 июня по адресу: Минск, ул. Кирова 13, отель &#171;Crowne Plaza&#187;, зал &#171;King&#187;. Регистрация на мероприятие начнется 16 мая. Количество мест ограничено. Для тех, кто не попадёт в число участников или не сможет лично присутствовать на &#8230; <a href="http://valera.ws/2012.05.16~ya-subbotnik/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Я.Субботник в Минске пройдет 2 июня по адресу: Минск, ул. Кирова 13, <a href="http://maps.yandex.ru/-/CNgBYKnC">отель &laquo;Crowne Plaza&raquo;, зал &laquo;King&raquo;</a>.</p>
<p><a href="http://company.yandex.ru/public/subbotnik/reg.xml">Регистрация</a> на мероприятие начнется 16 мая. Количество мест ограничено.</p>
<p>Для тех, кто не попадёт в число участников или не сможет лично присутствовать на Я.Субботнике, будет организована <a href="http://company.yandex.ru/public/subbotnik/online.xml">онлайн-трансляция</a>.</p>
<p>Подробную информацию о мероприятии читайте <a href="http://company.yandex.ru/public/subbotnik/">здесь</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2012.05.16~ya-subbotnik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Про Active Cloud (Active.by; отзыв)</title>
		<link>http://valera.ws/2012.04.07~active-cloud-%d0%be%d1%82%d0%b7%d1%8b%d0%b2/</link>
		<comments>http://valera.ws/2012.04.07~active-cloud-%d0%be%d1%82%d0%b7%d1%8b%d0%b2/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 19:31:22 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[байнет]]></category>
		<category><![CDATA[Беларусь]]></category>
		<category><![CDATA[интерфейс]]></category>
		<category><![CDATA[облака]]></category>
		<category><![CDATA[сайты]]></category>
		<category><![CDATA[юзабилити]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=661</guid>
		<description><![CDATA[Сегодня на CloudCamp послушал 10-минутный доклад о том, как поднимали свое облако Active.by (aka Active Cloud). Было услышано много восхищённых отзывов от технического директора Руслана Райкевича о том, что у них в итоге получилось. С одной стороны их труд действительно &#8230; <a href="http://valera.ws/2012.04.07~active-cloud-%d0%be%d1%82%d0%b7%d1%8b%d0%b2/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/logo.png" alt="" width="150" height="38" />Сегодня на CloudCamp послушал 10-минутный доклад о том, как поднимали свое облако Active.by (aka Active Cloud). Было услышано много восхищённых отзывов от технического директора Руслана Райкевича о том, что у них в итоге получилось.</p>
<p>С одной стороны их труд действительно достоин уважения. Они сделали относительно недорогое решение за короткий срок в условиях ограниченных финансовых возможностей. Причем, эту услугу они вывели на мертвый рынок Беларуси. С другой стороны фейлов в Active Cloud получилось немало. Как раз об этих фейлах я и хочу рассказать.<span id="more-661"></span></p>
<p>Все описанное ниже касается белорусского Active Cloud. Я не знаю, отличаются ли услуги, предоставляемые в других регионах. Возможно, там что-то по-другому.</p>
<p>Начнем с панелей. Их две: биллинг и управление облаком. Панель биллинга общая для всего-всего и включает управление всеми подписками, от доменов и DNS, до <a href="http://valera.ws/tag/%d0%be%d0%b1%d0%bb%d0%b0%d0%ba%d0%b0/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  облака">облака</a>. В этой панели объединено все, кроме управления самими машинами в облаке. Используется стандартное решение от Parallels. Оно очень тяжелое — страницы долго грузится. Причем, дело не только в канале интернета, но и во времени генерации страниц.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p1.png"><img class="alignnone" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p1.png" alt="" width="800" height="362" /></a></p>
<p>Навигация в этой панели просто ужасная. Сходу не понятно ничего. Я до сих пор до конца не понял концептуальной логики построения этой панели (проще говоря — что где искать), хотя пользуюсь ей уже несколько месяцев. Я часто с трудом нахожу то, что мне надо. Причем, делать это приходится буквально методом тыка. До интуитивности пока очень далеко. Очень.</p>
<p>В панели биллинга много непонятной и лишней информации, в том числе, похоже, никому ненужных цифр. Примером может служить вкладка &laquo;Статистика и анализ&raquo;. Это обратная сторона универсальности (&laquo;коробочное&raquo; решение от Parallels). Есть и баги. Например, у меня не работает вкладка «Статистика трафика» — она просто не подгружается.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p2.png"><img class="alignnone" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p4.png" alt="" width="800" height="363" /></a></p>
<p>Кстати, <a href="http://valera.ws/tag/interfejs/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  интерфейс">интерфейс</a> для общения с саппортом — отдельная тикетная система с базой знаний. Раньше она была топором врублена в биллинговую панель — было жутко неудобно. Похоже, разработчики это поняли и стали открывать ее в новом окне. Однако, она осталась неудобной. Слоновые заголовки, «потеря» страницы после F5 (это следствие отсутствия правильного URL в address bar), опять лишняя информация, причем частично на русском, частично на английском. Засоряют экран специальные уведомительные тикеты, которые плодятся вместе со счетами и виртуальными машинами. Здесь достаточно было бы уведомлений по e-mail.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p5.png"><img class="alignnone" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p5.png" alt="" width="800" height="363" /></a></p>
<p>Вторая панель — управление облаком от Cloud.com. Она тоже тяжелая и тормозящая, хотя и меньше биллинга. Не очень удобная навигация, многое приходится делать в два-три клика, когда можно было бы в один.</p>
<p>В обеих панелях не работает браузерная функция запоминания пароля (Firefox). В облачной панели мне сделали 2 учетки. Первая была на демо-доступ и сам логин был таким, как я просил. Вторую сделали на полный доступ, но логин без спроса сделали новый вида xxx1235465, где xxx — мой старый логин. Не очень удобно, особенно в купе с неработающим запоминанием пароля. Сменить второй логин не смогли. Кроме того, не смогли убрать и из самого биллинга завершенную подписку демо-доступа и некую ошибочно созданную подписку. Видимо, они будут мозолить мне глаза вечно.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p6.png"><img class="alignnone" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p6.png" alt="" width="800" height="363" /></a></p>
<p>При создании виртуальной машины ей задается группа (вписывается в текстовое поле). Все группы видны в меню. Машину можно удалить, но при этом группа не удалится. И переименовать группу нельзя. Раздражает.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p7.png"><img title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p7.png" alt="" width="800" height="363" /></a></p>
<p>Консоль виртуальной машины вроде работает без Java. Но она сделана на картинках-слайсах. Т.е. при изменении изображения на виртуальном экране виртуальной машины (консоль или GUI) подгружается новые картинки-квадратики. Из-за этого консоль работает медленно и с большой задержкой. Пользоваться ей неудобно.</p>
<p><a href="http://storage.valera.ws/pictures/blog/active.by/p8.png"><img class="alignnone" title="Active.by" src="http://storage.valera.ws/pictures/blog/active.by/p8.png" alt="" width="600" height="522" /></a></p>
<p>У Active.by классный сайт. У них в штате классный дизайнер. Но их панели — это полная противоположность их сайту. И дизайнер там почти не бывал.</p>
<p>Кроме того, в панелях были конкретные баги. Пару раз писал в саппорт, обещали поправить. Поправили или нет — не проверял.</p>
<p>Само облако поначалу сбоило. Лично мне несколько раз саппорт решал проблемы отвалившейся на моей ВМ сети. При мне сеть во всем облаке (толи целиком, толи в его куске) полностью падала на несколько часов. После этого столкнулся с тем, что свежеустановленная из образа Debian x64 не получала IP по DHCP на первом и всех последующих запусках (повторялось каждый раз). После обращения в саппорт проблема была решена за пару дней. Я был в шоке…</p>
<p>Надо отдать должное, что облако Active.by молодое. Оно было запущено в таком виде как сейчас в конце 2011 года. То, что описано выше, происходило в январе—феврале. Сейчас в марте проблем по доступности и функционированию машин и облака в целом замечено не было.</p>
<p>Изначально мы хотели перевести в облако свои серверы. Но сделать это не смогли. Основной причиной тому были непонятные проблемы с производительностью дисковой подсистемы. Хотя синтетические измерения вроде бы и выдавали нормальные скорости I/O, но фактическая производительность рабочего сервера на Windows у нас оказалась колоссально хуже, чем на аналогичном по конфигурации голом железе.</p>
<p>Возможно, проблемы были на большом количестве IOPS (частое чтение мелких блоков). Мы не выяснили это до конца. Но факт есть факт: то, что у нас нормально работает на физическом выделенном сервере, перенести в облако мы не смогли — сильно педалит. Причем, четко видно, что педалит не по CPU, и не по памяти. Педалит именно по дисковому I/O.</p>
<p>В Беларуси Active один на облачном рынке и выбирать не приходится. Но в России, где конкуренция намного выше, я бы выбрал других. Красочный маркетинг, гибкость в продажах, открытость для партнерских отношений — неоспоримые плюсы Active. Но пока у них есть серьезные технические проблемы в облаке и юзабилити, эти плюсы курят в сторонке.</p>
<p>Мне нравится Active.by. Я желаю им успехов в развитии. И надеюсь, что мой пост поможет им раскрыть глаза на собственные недостатки и исправить их. Удачи им в этом!</p>
<p><strong>Актуальность информации — апрель 2012 года.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2012.04.07~active-cloud-%d0%be%d1%82%d0%b7%d1%8b%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Бесплатный валидный (подписанный) SSL-сертификат через StartSSL</title>
		<link>http://valera.ws/2012.03.11~free-valid-signed-ssl-certificate-with-sratssl/</link>
		<comments>http://valera.ws/2012.03.11~free-valid-signed-ssl-certificate-with-sratssl/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 13:31:25 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=641</guid>
		<description><![CDATA[Итак, вы хотите получить бесплатный SSL-сертификат для своего сайта (для HTTPS). На сколько я знаю, единственный сервис, который выдает бесплатные валидные годовые сертификаты — это StartSSL. Израильская компания занимается цифровой сертификацией и является официальным Центром сертификации (CA) в PKI. StartSSL раздает &#8230; <a href="http://valera.ws/2012.03.11~free-valid-signed-ssl-certificate-with-sratssl/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Start SSL" src="http://storage.valera.ws/pictures/blog/startssl.png" alt="" width="150" height="23" />Итак, вы хотите получить бесплатный <a href="http://valera.ws/tag/ssl/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SSL">SSL</a>-сертификат для своего сайта (для HTTPS). На сколько я знаю, единственный сервис, который выдает бесплатные валидные годовые сертификаты — это <a href="https://www.startssl.com/" target="_blank">StartSSL</a>. Израильская компания занимается цифровой сертификацией и является официальным <a href="http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8" target="_blank">Центром сертификации</a> (CA) в <a href="http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D1%80%D0%B0%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85_%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9" target="_blank">PKI</a>.</p>
<p>StartSSL раздает валидные годовые SSL-сертификаты бесплатно. Другие компании берут за это деньги начиная примерно от $20 в год. StartSSL зарабатывает на сертификатах более высоких классов, включая сертификат с <a href="http://en.wikipedia.org/wiki/Extended_validation" target="_blank">расширенной валидацией</a>, а базовый сертификат делает бесплатно. Их идея заключается в том, что они не берут деньги за сервис, в котором не используется труд людей (базовая валидация домена производится автоматически).</p>
<p><span id="more-641"></span></p>
<h2>1. О системе StartSSL и их сертификатах</h2>
<p>Особенность функционирования сайта StartSSL заключается в том, что авторизация в панель управления производится через <a href="http://www.opennet.ru/base/sec/ssl_cert.txt.html" target="_blank">клиентский S/MIME сертификат</a>. Это большая редкость в наши дни. Отсюда возникает непонимание процесса неподготовленными пользователями и тупняк на этапе освоения сервиса.</p>
<p>Суть заключается в том, что вместо логина и пароля вам выдается сертификат. Почти такой же сертификат, какой выдается для подтверждения подлинности сервера. Этот сертификат отправляет на сервер ваш браузер при авторизации (автоматически после вашего подтверждения). Браузер берет его из хранилища, куда сертификат должен быть импортирован до проведения авторизации. Если сертификата в хранилище не окажется, то при авторизации вы увидите браузерное сообщение об ошибке, на подобии &laquo;Не удаётся завершить защищённую транзакцию&raquo;.</p>
<p>Чтобы получить бесплатный сертификат для вашего сайта, нужно<em> зарегистрироваться</em> в сервисе StartSSL и получить персональный сертификат, <em>войти </em>с его помощью в панель, после чего можно будет <em>заказать </em>и <em>получить </em>бесплатный SSL-сертификат для вашего сайта.</p>
<p>Персональный сертификат действует 1 год и его необходимо своевременно обновить в за месяц до конца срока действия, иначе вы потеряете доступ к панели.</p>
<p>Так же следует сразу отметить, что получить сертификат можно только для доменов из фиксированного списка зон. Это домены второго уровня во всех региональных и коммерческих зонах первого уровня, а так же отдельные зоны второго уровня (с доменами третьего уровня).</p>
<p>Кроме того, на домене должна работать почта. На один из ящиков из фиксированного списка (webmaster@домен, postmaster@домен, hostmaster@домен или адреса, указанные в Whois) придет письмо с кодом проверки.</p>
<h2>2. Регистрация</h2>
<p>Зайдите на сайт <a href="https://www.startssl.com/" target="_blank">StarSSL</a> и начните регистрацию (кликаем Sign-up). При этом нельзя использовать <a href="http://valera.ws/tag/google/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Google">Google</a> Chrome (можно Opera, Firefox, IE).</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/1.png" alt="Страница авторизации StartSSL" width="630" height="381" /></p>
<p><strong>2.1.</strong> Заполните форму. Укажите свои реальные данные. Во-первых, этого требует соглашение, с которым вы соглашаетесь при регистрации. Во-вторых, эти данные проверяются вручную. В-третьих, указывать здесь фейковый данные смысла мало, т.к. кроме самого StartSSL их никто не увидит.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/2.png" alt="Страница регистрации StartSSL" width="630" height="381" /></p>
<p><strong>2.2.</strong> Укажите код подтверждения e-mail-а. Как правило, письмо с кодом приходит сразу или в течение минуты.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/3.png" alt="Страница ввода кода проверки e-mail-а на StartSSL" width="630" height="381" /></p>
<p><strong>2.3.</strong> Дождитесь проверки указанных данных персоналом StartSSL. Да, они проверят то, что вы ввели в форме. Вручную. Если их ничего не смутит (а как правило ничего не смущает в реальных данных), вам придет ответ на e-mail, в котором будет указана ссылка на вторую активацию аккаунта (с кодом). Обратите внимание, что ссылка действует только в течение 24 часов.</p>
<p>Они могут задать дополнительные вопросы по e-mail для уточнения регистрационных данных. Отвечать на них имеет смысл, и опять-таки — честно.</p>
<p>После подтверждения аккаунта персоналом вам прийдет второе письмо с кодом проверки. Переходите по ссылке из второго письма, указывайте второй код активации, попадете на страницу генерации ключа персонального сертификата:</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/4.png" alt="Страница генерации приватного ключа на StartSSL" width="630" height="381" /></p>
<p>Для генерации ключа выбираем 2048 бит (в выпадающем меню), так как меньшую битность StartSSL не поддерживает, а в большей едва ли есть смысл.</p>
<p>После нажатия &laquo;Continue&raquo; генерируется ключ заданной длины. Он сохраняется в браузере и отправляется на сервер. Там генерируется сертификат на основании этого ключа. После генерации сертификат передается (после нажатия &laquo;Install&raquo;) вам — в браузере появляется окно, предлагающее его установить.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/5.png" alt="Окно генерации персонального сертификата StartSSL " width="630" height="381" /></p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/6.png" alt="Окно установки персонального сертификата в Opera" width="430" height="401" /></p>
<p>Устанавливаем обязательно.</p>
<p><strong>2.4.</strong> На данный момент картина следующая: у вас есть подтвержденная учетная запись StartSSL и персональный сертификат, установленный в браузер, который заменяет для вас одновременно логин и пароль.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/7.png" alt="Окно об бэкапе сертификата в StartSSL" width="630" height="381" /></p>
<p>Этот сертификат необходимо &laquo;достать&raquo; из браузера и сохранить в надежном месте. В случае потери установленного сертификата (например, переустановка <a href="http://valera.ws/tag/%d0%be%d1%81/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ОС">ОС</a> или браузера) вы сможете его вновь импортировать. Кроме того, сертификат нужен для того, чтобы войти в панель с другого компьютера.</p>
<p>Конкретные действия для экспорта сертификата зависят от вашего браузера. Общее лишь то, что вы должны попасть в управление хранилищем сертификатов, найти там свой персональный сертификат StartSSL и экспортировать его в файл. В Opera это делается так:</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/8.png" alt="Экспорт сертификата в Opera" width="500" height="404" /></p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/9.png" alt="Экспорт сертификата в Opera" width="680" height="560" /></p>
<p>Формат экспорта — с секретным ключем PKCS#12. Если такого формата нет и вы не знаете, какой формат экспорта лучше выбрать (при условии, что их несколько), экспортируйте во все :). Если вы экспортируете сертификат без ключа, смысла в этом не будет — он не будет работать.</p>
<p>Если вы потеряете сертификат, утратите доступ к панели. Это значит, что для получения новых сертификатов и продления старых (через выписку нового), необходимо будет заново регистрироваться.</p>
<p><strong>3.</strong> Итак, ваша учетная запись подтверждена и у вас есть персональный сертификат для авторизации в панели StartSSL. Теперь самое время зайти в панель. Нажимаем на кнопку с ключами и попадаем на страницу авторизации (смотрите на первом изображении в статье). Нажимаем &laquo;Authenticate&raquo;. Подтверждаем передачу серверу нашего персонального сертификата. Авторизация пройдена — вы в панели.</p>
<p>Если на этом этапе вы получаете ошибки, значит что-то не то с сертификатом. Если браузер при авторизации не выдавал вам предложения отправить сертификат на сервер, значит он не импортирован в хранилище (см. выше).</p>
<p>Самое тяжелое позади. Теперь необходимо заказать и получить сертификат для вашего сайта. Он будет выдан на год. Спустя 11 месяцев необходимо зайти на сайт и получить новый сертификат на тот же сайт (то же имя). Как таковой процедуры продления сертификатов нет ни для сайта, ни для персональных сертификатов. Об окончании срока действия сертификатов StartSSL несколько раз раз предупреждает по почте.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/10.png" alt="Страница Tool Box панели StartSSL" width="630" height="381" /></p>
<p>Панель StartSSL состоит из 3-х разделов (вкладки на изображении выше):</p>
<ul>
<li>Tool Box — инструментарий. Большая его часть бесполезна. Можно отметить только разделы для получения корневых и промежуточных сертификатов StartSSL и получения ранее созданных сертификатов.</li>
<li>Certificates Wizard — мастер создания нового сертификата. С него начинается заказ нового сертификата для сайта или персонального сертификата. Для создания сертификата должен быть заранее подтвержден домен или адрес e-mail соответственно.</li>
<li>Validations Wizard — это как раз и есть мастер проверки сайта и e-mail (а кроме того платных проверок личности и организации). С него нужно начинать получение сертификата для сайта. Каждая проверка действует 30 дней, так что при &laquo;продлении&raquo; сертификатов проверки необходимо повторять.</li>
</ul>
<p>Итак, начинаем процесс получения сертификата для сайта.</p>
<p><strong>3.1.</strong> Проверка (валидация) домена. Переходим в Validations Wizard, выбираем проверку домена (Domain Name Validation):</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/11.png" alt="Окно мастера проверки StartSSL" width="630" height="381" /></p>
<p>На следующем шаге укажите домен. После выбора домена необходимо выбрать из списка предложенных e-mail, на который придет письмо с кодом для проверки принадлежности домена. Письмо как правило приходит быстро, ввод кода подтверждения аналогичен, как при регистрации.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/12.png" alt="Страница выбора e-mail-а для проверки домена StartSSL" width="630" height="381" /></p>
<p><strong>3.2.</strong> После проверки принадлежности домена нужно заказать для него сертификат. Для этого перейдите в Certificates Wizard, выберите Web Server SSL/TSL Certificate. Далее выберите из списка один из предварительно проверенных доменов.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/13.png" alt="Получение сертификата StartSSL" width="630" height="381" /></p>
<p>На следующем шаге есть два варианта:</p>
<ul>
<li>пропустить шаг и предоставить собственноручно сгенерированный <a href="http://en.wikipedia.org/wiki/Certificate_signing_request" target="_blank">CSR</a> со своим приватным ключем,</li>
<li>или заполнить форму и сгенерировать приватный ключ в браузере.</li>
</ul>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/14.png" alt="Получение сертификата StartSSL" width="630" height="381" /></p>
<p>Первый вариант выбирают те, кто знает, что такое CSR и как его сделать. В любом случае обратите внимание на то, что размер ключа (Keysize) не должен быть менее 2048 бит.</p>
<p>Предположим, что выбран вариант с генерацией ключа. Тогда заполните форму и нажмите &laquo;Continue&raquo;. После некоторой паузы вы получите свой ключ. Сохраните его, он пригодится позже.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/15.png" alt="Получение приватного ключа StartSSL" width="630" height="381" /></p>
<p>На следующем шаге повторно выберите домен. Далее, укажите для него поддомен. <strong>Сертификат будет действителен для выбранного домена и указанного сабдомена</strong> (например, www).</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/16.png" alt="Указание сабдомена для сертификата StartSSL" width="630" height="381" /></p>
<p>На следующем шаге просто подтверждается заказ сертификата. После этого вы получите сам сертификат (PEM-encoded). Сохраните его.</p>
<p><img src="http://storage.valera.ws/pictures/blog/start-ssl/17.png" alt="Получение сертификата StartSSL" width="630" height="381" /></p>
<p>Процесс получения сертификата на этом завершен. В результате у вас есть 2 файла: приватный ключ и сертификат. Их нужно указать в конфигах вашего веб-сервера. Приватный ключ необходимо предварительно расшифровать командой:</p>
<pre>openssl rsa -in ssl.key -out ssl.key</pre>
<p>О том, как настроить веб-сервер для использования полученного сертификата, как-нибудь в следующий раз. А вообще, по этой теме хватает информации в Интернете.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2012.03.11~free-valid-signed-ssl-certificate-with-sratssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Выдача файла из PHP через nginx (Accel-Redirect) + докачка + некоторые тонкости</title>
		<link>http://valera.ws/2012.03.06~accel-redirect-apache-dokachka/</link>
		<comments>http://valera.ws/2012.03.06~accel-redirect-apache-dokachka/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 20:28:27 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[компьютерные сети]]></category>
		<category><![CDATA[сайты]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=644</guid>
		<description><![CDATA[Как контролировать скачивание больших файлов, проверяя права доступа или считая количество закачек? Как сделать, чтобы при проксировании на Apache работала докачка? Как вообще работает докачка, почему она не работает с nginx в IE 9 и как она работает в других браузерах? 1. Мы &#8230; <a href="http://valera.ws/2012.03.06~accel-redirect-apache-dokachka/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Как контролировать скачивание больших файлов, проверяя права доступа или считая количество закачек? Как сделать, чтобы при проксировании на Apache работала докачка? Как вообще работает докачка, почему она не работает с nginx в IE 9 и как она работает в других браузерах?<span id="more-644"></span></p>
<h2>1. Мы хотим контролировать скачивание больших файлов, проверяя права доступа или считая количество закачек. Мы используем nginx и PHP (или другой серверный язык).</h2>
<p>Это реализуется очень просто через заголовок Accel-Redirect. nginx получает запрос, передает его скрипту, скрипт в заголовки ответа выдает Accel-Redirect с ссылкой на файл, который нужно выдать пользователю. Если файл выдавать нельзя (например, нет прав), скрипт просто выдаст ошибку (например, 403).</p>
<p>В данном случае не важно, работает ваш PHP через проксирование из nginx на Apache, либо на *CGI. Предположим, что вы хотите отдавать на скачку файлы, которые находятся в каталоге /var/files. Тогда в секции server в nginx добавьте:</p>
<pre>location /_download_files {
        root /var/files;
        internal;
}
</pre>
<p>В скрипте, который контролирует закачку, в том месте, где мы хотим отдать пользователю файл, должен быть следующий код:</p>
<pre>header("X-Accel-Redirect: /_download_files/filename.zip");</pre>
<p>Никакой выдачи (echo) делать не надо, после отдачи заголовка можно завершить работу скрипта. В этом случае будет скачан файл /var/files/filename.zip. Вместо filename.zip может быть любой длинный путь с каталогами, который должен повторять путь к файлу в /var/files/.</p>
<p>В принципе этого достаточно, чтобы переложить выдачу файла на плечи nginx. Если нужно обязательно показать диалог закачки (даже если файл такого типа, который браузер может показать сам), нужно добавить выдачу заголовка:</p>
<pre>header("Content-Type: application/x-force-download");</pre>
<p>Обратите так же внимание на то, что в случае проксирования на Apache последний обязательно установит Content-Type (по умолчанию обычно text/html) в случае PHP-скриптов, и этот тип отправится пользователю, так как nginx его не перепишет при выполнении Accel-Redirect. Т.е. в этом случае эту строку нужно писать обязательно. Как будет в случаях с *CGI, не знаю — не проверял.</p>
<p>Чтобы предложить пользователю имя файла для сохранения, отличное от того, что в адресной строке (это особо актуально в случаях &laquo;download.php&amp;file_id=12332&#8243;), отправим такой заголовок:</p>
<pre>Content-Disposition: attachment; filename="Super File Name.zip";</pre>
<h2>2. В такой схеме при проксировании на Apache не работает докачка. Исправляем.</h2>
<p>Докачка в <a href="http://valera.ws/tag/http/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  HTTP">HTTP</a> работает через <a href="http://valera.ws/tag/http/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  HTTP">HTTP</a>-заголовок Range. В нем указывается с какого байта начать передачу. Можно так же указать, сколько байт нужно передать. Это передается в запросе. Например:</p>
<pre>Range: bytes=33-
Range: bytes=33-100
</pre>
<p>Первый вариант просит отдать весь файл, начиная с 33 байта (включительно). Второй вариант просит отдать с 33 байта по 100. Чтобы браузер понял, что докачка поддерживается, сервер отдает в ответе заголовок:</p>
<pre>Accept-Ranges: bytes</pre>
<p>Докачка не работает из-за того, что HTTP-заголовок Range попадает в Apache после просирования и последний думает, что его просят отдать кусок PHP-файла. А он это делать не хочет и отдает ошибку: HTTP/1.1 416 Requested Range Not Satisfiable.</p>
<p>Исправляется это довольно легко — просто зануляйте при проксировании Range (это нужно добавить туда, где у вас описано проксирование на Apache в конфиге nginx):</p>
<pre>proxy_set_header   Range   "";</pre>
<p>Тогда Apache (или PHP-скрипт) ничего знать про него не будут и спокойно сделают свое дело. А nginx после Accel-Redirect отдаст ответ в соответствии с запрошенным Range.</p>
<p>Если жизненно необходимо видеть в скрипте запрошенный Range, то его можно либо передать через дополнительный заголовок при проксировании (proxy_add_header), либо последовать <a href="http://mailman.nginx.org/pipermail/nginx-ru/2005-May/002145.html">совету отсюда</a>.</p>
<h2>3. Даже так не работает докачка в IE 9.</h2>
<p>Да. На сколько я понял методом простого тыка, IE требует поддержки <a href="http://en.wikipedia.org/wiki/HTTP_ETag">ETag</a> сервером для работы докачки. Игорь Сысоев (разработчик nginx) отказался внедрять в nginx поддержку ETag. Поэтому из коробки работать докачка в IE 9 не будет точно. Если это жизненно необходимо, пробуйте <a href="http://wiki.nginx.org/3rdPartyModules">смотреть сюда</a> (Ctrl+F Etag).</p>
<h2>4. А как работает докачка в других браузерах?</h2>
<p>Везде есть свои особенности. В общих чертах случай докачки выглядит так. Запрос/ответ на скачку (начало скачки):</p>
<pre>GET /file.zip HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Server: nginx/1.0.3
Date: Tue, 06 Mar 2012 18:09:47 GMT
Content-Type: application/x-force-download
Content-Length: 13686314
Last-Modified: Thu, 23 Feb 2012 13:50:26 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Disposition: attachment; filename="Supre File Name.zip";
Accept-Ranges: bytes
</pre>
<p>Запрос/ответ на докачку:</p>
<pre>GET /file.zip HTTP/1.1
Host: example.com
Range: bytes=5393683-

HTTP/1.1 206 Partial Content
Server: nginx/1.0.3
Date: Tue, 06 Mar 2012 18:10:11 GMT
Content-Type: application/x-force-download
Content-Length: 8292631
Last-Modified: Thu, 23 Feb 2012 13:50:26 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Disposition: attachment; filename="Super File Name.zip";
Content-Range: bytes 5393683-13686313/13686314
</pre>
<p>На практике ни один браузер не ограничивается таким набором заголовков. Все хотят защитить пользователя от скачки битого файла. Это может получиться так: начал закачку, поставил на паузу; в это время на сервере скачиваемый файл обновился; продолжил закачку с нужно места и получил кусок обновленного файла. В результате скачается &laquo;битый&raquo; файл — половина старая версия, половина — новая.</p>
<p><strong>Opera.</strong> Она шлет указание на то, что &laquo;если файл не менялся со времени Last-Modified в первом ответе, дай мне указанный кусок; иначе — отдай мне весь файл заново&raquo;. Делается это с помощью заголовка If-Range в запросе:</p>
<pre>GET /file.zip HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.61
Host: example.com
Accept text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, ..., */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
If-Range: Thu, 23 Feb 2012 13:50:26 GMT
Range: bytes=5393683-
</pre>
<p><strong>Firefox.</strong> Он делает немного иначе. Используется заголовок If-Unmodified-Since с указанием того же времени из Last-Modified. В этом случае сервер либо вернет запрошенный кусок (если файл не менялся), либо отдаст ошибку 412 Precondition Failed. Выглядит это так:</p>
<pre>GET /file.zip HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Range: bytes=5878651-
If-Unmodified-Since: Thu, 23 Feb 2012 13:50:26 GMT
</pre>
<p><strong>Chrome.</strong> Этот &laquo;пильмень&raquo; — самый хитрый. Он вообще не поддерживает докачку, хотя делает вид, что поддерживает. При постановке закачка на паузу он просто шлет некие TCP-пакеты для поддержания соединения. Когда сервер понимает, что его дурят, он разрывает соединение. Если дождаться этого момента и нажать в Хроме &laquo;Продолжить&raquo;, он сделает умный вид, будто файл полностью скачался и все ОК, но при этом он останется в том размере, в котором успел скачаться до паузы.</p>
<p>Вся эта информация получена методом наблюдения. Возможно в какой-то другой ситуации Хром повел бы себя иначе, но я через <a href="http://www.wireshark.org/">WireShark</a> наблюдал именно такую картину.</p>
<p><strong>IE.</strong> Про версию 9 уже сказано выше. Она требует работы Etag для поддержки докачки. В данном контексте ETag — это просто контрольная сумма файла. Когда Etag файла передается в первом ответе от сервера, IE даст возможность прервать скачку. При попытке докачки он отдаст заголовки:</p>
<pre>GET /file.zip HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: falcongaze.com
Range: bytes=3494051-
Unless-Modified-Since: Mon, 05 Mar 2012 08:31:06 GMT
If-Range: "1448453-f77f31-4ba7abf5a8680"
Connection: Keep-Alive
</pre>
<p>В добавок к If-Range он передает нестадартный заголовок Unless-Modified-Since — вероятено IIS его обрабатывает (только не понятно, зачем он, если есть стандартный If-Unmodified-Since; может для поддержки старых версий IIS?).</p>
<p>Собственно в первом ответе Etag выглядит примерно так (если он поддерживается сервером, например, Apache):</p>
<pre>...
ETag: "1448453-f77f31-4ba7abf5a8680"
</pre>
<p><strong>Дополнительная информация</strong>:</p>
<ul>
<li><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">RFC 2616. Header Field Definitions</a>;</li>
<li><a href="http://en.wikipedia.org/wiki/List_of_HTTP_header_fields">List of HTTP header fields</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2012.03.06~accel-redirect-apache-dokachka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как стать хорошим программистом и хорошим php-программистом в частности?</title>
		<link>http://valera.ws/2011.12.31~how-to-be-a-good-programmer/</link>
		<comments>http://valera.ws/2011.12.31~how-to-be-a-good-programmer/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 11:35:09 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[алгоритмы]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=628</guid>
		<description><![CDATA[Хочу поделиться ссылкой, по которой можно найти много полезной информации для развития себя как настоящего программиста. Ссылка на пост в белорусском сообществе программистов — dev.by. Написана человеком, который попросил дать ему совет, а потом свёл в статье резюме полученных советов. &#8230; <a href="http://valera.ws/2011.12.31~how-to-be-a-good-programmer/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-631" title="programmer at work" src="http://valera.ws/wp-content/uploads/2011/12/programmer.png" alt="" width="200" height="130" />Хочу поделиться ссылкой, по которой можно найти много полезной информации для развития себя как <strong>настоящего</strong> программиста. Ссылка на пост в белорусском сообществе программистов — dev.by. Написана человеком, который попросил дать ему совет, а потом свёл в статье резюме полученных советов. Ни автор, ни комментаторы не имеют ко мне никакого отношения. Но я готов подписаться под большинством полученный советов.</p>
<p><span id="more-628"></span></p>
<p>Ценность материала в том, что:</p>
<p>1) это хороший способ взглянуть на себя со стороны огромному числу программистов PHP, так как общая средняя квалификация этого класса программистов значительно ниже среднего по другим более серьезным языкам; взгляд со стороны поможет понять свои проблемы и найти способы их преодоления;</p>
<p>2) конкретные советы о том, что следует почитать/посмотреть.</p>
<p>Ссылка на материал: <a title="Как стать хорошим программистом и хорошим php-программистом в частности?" href="http://dev.by/blog/37028" target="_blank"><strong>Как стать хорошим программистом и хорошим php-программистом в частности?</strong></a></p>
<p><strong>А ниже позволю себе сделать частичный копипаст предложенных решений.</strong></p>
<h2>Мастерство программирования (или скорее можно назвать Основы)</h2>
<ul>
<li><a href="http://oz.by/books/more1015206.html" target="_blank">Совершенный код</a>,</li>
<li><a href="http://oz.by/books/more10109592.html" target="_blank">Чистый код</a>,</li>
<li><a href="http://oz.by/books/more105087.html" target="_blank">Рефакторинг</a>,</li>
<li><a href="http://oz.by/books/more1031721.html" target="_blank">Программист-прагматик</a>,</li>
<li><a href="http://oz.by/books/more1010353.html" target="_blank">Архитектура корпоративных программных приложений</a>,</li>
<li><a href="http://oz.by/books/more10182848.html" target="_blank">Кодеры за работой</a>.</li>
</ul>
<p>Нашел очень хорошую и исчерпывающую статью на английском: <a href="http://samizdat.mines.edu/howto/HowToBeAProgrammer.html" target="_blank">How to be a Programmer: A Short, Comprehensive, and Personal Summary</a></p>
<p>Курсы, выложенные по <a href="http://ru.wikipedia.org/wiki/MIT_OpenCourseWare" target="_blank">MIT OCW</a>:</p>
<ul>
<li><a href="http://ocw.mit.edu/courses/audio-video-courses/#electrical-engineering-and-computer-science" target="_blank">MIT Electrical Engineering and Computer Science</a></li>
</ul>
<p>Курсы Стэнфорда:</p>
<ul>
<li><a href="http://www.ml-class.org/" target="_blank">Mashine learning</a></li>
<li><a href="http://www.nlp-class.org/" target="_blank">Natural Language Processing class</a></li>
<li><a href="http://www.saas-class.org/" target="_blank">Software Engineering for Software as a Service class</a></li>
</ul>
<p>На каждом сайте внизу есть ссылки на другие курсы Стэнфорда.</p>
<h2><a href="http://valera.ws/tag/algoritmy/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  алгоритмы">Алгоритмы</a>.</h2>
<p>Как развивать:</p>
<p><a href="http://oz.by/books/more1034722.html" target="_blank">Искусство программирования</a> Кнутта — читать и выполнять задания.</p>
<p><a href="http://projecteuler.net/" target="_blank">Project Euer</a> — задания по алгоритмам, можно писать на PHP.</p>
<h2>ООП и Шаблоны проектирования</h2>
<p><a href="http://oz.by/books/more1074794.html" target="_blank">PHP: объекты, шаблоны и методики программирования</a> М. Зандстра сейчас, наверное, лучшая книга для введения в шаблоны проектирвания для PHP.</p>
<p><a href="http://shop.oreilly.com/product/9780596007126.do" target="_blank">Head First Design Patterns</a>, на русском <a href="http://oz.by/books/more10182766.html" target="_blank">Паттерны проектирования</a> — очень рекоммендуют, как очень хорошо разъясняющую книгу.</p>
<p>какие книги, методы обучения, задачи порекоммендуете?</p>
<h2>PHP основы</h2>
<p>Как развивать:</p>
<p>собственно работа по профессии и набор опыта,</p>
<p><a href="http://oz.by/books/more102159.html" target="_blank">Профессиональное PHP программирование</a> — вроде как лучшая книга по основам PHP (читать, чтобы заполнить пробелы по основам языка, начиная с типов и далее. Посмотреть, что есть из того, чего я не казался в работе, чтобы расширять кругозор.</p>
<p>Потом есть stackoverflow, там введи в поиск ~php~ и читай вопрос, давай свой ответ (про себя), потом смотри, что другие написали. Будешь по тегам смотреть заодно, что пхп-ники изучают.</p>
<h2>Javascript Основы</h2>
<p>Как развивать:</p>
<p>собственно работа по профессии и набор опыта,</p>
<p><a href="http://oz.by/books/more1011147.html" target="_blank">JavaScript. Подробное руководство. Д. Флэнаган</a> (читать и разбираться в пропущенных основах &#8211; типы, обьектная модель и др.)</p>
<p><a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742" target="_blank">JavaScript: The Good Parts</a></p>
<p><a href="http://oz.by/books/more10193164.html" target="_blank">JavaScript. Шаблоны</a></p>
<p>Источник: <a title="Как стать хорошим программистом и хорошим php-программистом в частности?" href="http://dev.by/blog/37028" target="_blank">Как стать хорошим программистом и хорошим php-программистом в частности?</a> Ни автор, ни комментаторы не имеют ко мне никакого отношения.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.12.31~how-to-be-a-good-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Устройство меня: желания</title>
		<link>http://valera.ws/2011.12.04~myself-wishes/</link>
		<comments>http://valera.ws/2011.12.04~myself-wishes/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 11:11:33 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[Жизнь]]></category>
		<category><![CDATA[Устройство меня]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=622</guid>
		<description><![CDATA[С возрастом я начал задумываться о том, как проходит моя жизнь и из чего она состоит. Долгое время я наблюдал за собой, отмечал возникающие внутренние желания и потребности, старался смотреть на себя со стороны. Со временем в голове собралась некоторая &#8230; <a href="http://valera.ws/2011.12.04~myself-wishes/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-625" title="Устройство меня: желания" src="http://valera.ws/wp-content/uploads/2011/12/mozg-1.png" alt="" width="200" height="130" />С возрастом я начал задумываться о том, как проходит моя жизнь и из чего она состоит. Долгое время я наблюдал за собой, отмечал возникающие внутренние желания и потребности, старался смотреть на себя со стороны. Со временем в голове собралась некоторая картина, которую можно было анализировать, после чего делать выводы. Мне кажется, что относительно недавно я пришел к пониманию того, как формируются мои желания. Об этом я и постараюсь сегодня рассказать. Возможно, многим эти мысли покажутся близкими.</p>
<p><span id="more-622"></span></p>
<p>Речь здесь пойдет не о желании съесть бутерброд или пойти сегодня на работу в рубашке. Речь пойдет о больших активных действиях, которые съедают заметную часть своего времени. Например, чтение книги, написание программы, глобальная уборка в квартире, поездка в магазин или на рынок с целью глобальной закупки.</p>
<p>Все свои активные действия я делю на две группы: созидание и потребление. Созидание приводит к появлению чего-либо нового в физическом мире или моей собственности. Потребление может приводить к появлению только новых знаний и опыта в моей голове. В принципе, к потреблению относятся все формы обучения и познания и ничего более.</p>
<p>Хочется поехать на рынок и купить новой одежды? Значит, хочется созидать. Хочется программировать? Это также желание созидания. А вот если появилось желание почитать книгу или какие0нибудь статьи, «полистать» интернет, пообщаться с друзьями, то можно говорить о желаниях потребления.</p>
<p>Почему это так важно? Здесь как раз следует обратить внимание на результаты моего анализа своих желаний. Я заметил, что можно выделить периоды, когда доминируют желания только одной из этих групп.</p>
<p>В периоды созидания хочется программировать, создавать новые архитектуры и системы, эскизы; хочется навести порядок в квартире, починить какой-нибудь прибор; наконец-то поменять масло в машине; собрать строение из конструктора дочери; написать статью в блог и так далее.</p>
<p>В периоды потребления хочется в первую очередь читать и слушать других людей. Хочется изучать что-то новое, расширять свой кругозор, рассматривать красивые фотографии, смотреть фильмы. В эти периоды не хочется ничего делать, создавать, хочется только получать готовое.</p>
<p>Обычно периоды потребления и созидания примерно равны по времени между собой и следуют один за другим попеременно, как полоски на зебре. Длина периодов зависит от разных обстоятельств, в том числе разнится во время разных жизненных этапов. Сейчас у меня эти периоды могут измеряться неделями, но, как правило, не больше 2-3 месяцев. Мне кажется, что раньше (в юности) они измерялись днями.</p>
<p>Между этими периодами есть короткий срок, который представляет собой неопределенность. В это время нет явных желаний ни на потребление, ни на созидание. Либо не хочется вообще ничего, либо всего, но понемногу. Состояние в это время может становиться депрессивным. Этот период можно назвать «ломкой».</p>
<p>Все это напоминает всем известные биоритмы. Я никогда не вникал в эту тему и для меня слово «биоритм» ассоциируется только с графиком (ко)синусоиды, и все. Есть подозрение, что я для себя как раз и открыл биоритмы. Пока не знаю.</p>
<p>Все описанное выше можно изобразить на графике:</p>
<p><a href="http://valera.ws/wp-content/uploads/2011/12/lifeline.jpg"><img class="aligncenter size-full wp-image-623" title="lifeline" src="http://valera.ws/wp-content/uploads/2011/12/lifeline.jpg" alt="" width="650" height="503" /></a></p>
<p>На основании полученных данных можно сделать некоторые выводы о том, как лучше организовать свое время, чтобы вписываться в эти периоды максимально легко; составить такой план дел, при котором не нужно будет заставлять себя делать те или иные действия, когда этого не хочется. Ведь в другое время можно сделать то же самое, но уже с удовольствием, что намного приятнее.</p>
<p>Очевидно, что периоды не сменяют друг друга моментально: вчера хочу одно, сегодня совсем другое. Их смена происходит плавно. Сначала желание постепенно усиливается, доходя до максимума (пика), потом постепенно угасает. Время перехода тоже растягивается на некоторый отрезок времени.</p>
<p>Во время смены периодов наступает некоторая апатия. Не хочется делать ничего, либо всего понемногу (что не сильно отличается от «ничего»). Поэтому в это время лучше отдыхать. Не нужно заставлять себя сконцентрироваться на чем-то одном. Лучше откинуть в сторону все и просто отдыхать.</p>
<p>Во время явно выраженных периодов созидания и потребления лучше заняться делом – производством или самообучением в профессиональном плане; наведением порядка в жилище, починкой и обслуживанием личного транспорта или изучением/просмотром интересных материалов (статей, фотографий, фильмов) в плане свободного времени.</p>
<p>Во время переходов лучше максимально отдыхать и расслабляться, дарить большую часть времени семье.</p>
<p>Конечно, это не значит, что нужно строго следовать описанное схеме. Например, отдыхать и уделять время семье нужно всегда. При этом легче определить, каким делам следует отдать предпочтение.</p>
<p>Напоследок подчеркну еще раз: все выводы сделаны на основании анализа жизни одного человека, т.е. меня. Подозреваю, что найдутся люди, которые могут спроецировать описанное на себя. Но на то, что описанная схема годится для всех и является чем-то универсальным, даже не намекаю.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.12.04~myself-wishes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Идея наглядного сравнения видов хостинга</title>
		<link>http://valera.ws/2011.09.18~hosting-types-comparison/</link>
		<comments>http://valera.ws/2011.09.18~hosting-types-comparison/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 18:41:44 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Cloud]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=618</guid>
		<description><![CDATA[Пришла в голову мысль провести аналогию между присутствующими на рынке видами хостинга и чем-то бытовым. Все предложения хостинга можно разделить на 4 группы: Shared hosting (общий сервер), VPS (virtual private server — частный виртуальный сервер), Dedicated (выделенный сервер) и Cloud &#8230; <a href="http://valera.ws/2011.09.18~hosting-types-comparison/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Пришла в голову мысль провести аналогию между присутствующими на рынке видами хостинга и чем-то бытовым.</p>
<p>Все предложения хостинга можно разделить на 4 группы: Shared hosting (общий сервер), VPS (virtual private server — частный виртуальный сервер), Dedicated (выделенный сервер) и Cloud (облачный хостинг). Colocation (размещение сервера) в расчет не берется, так как это просто аренда места в стойке, а не хостинг.</p>
<p>Итак, с чем же можно провести аналогию?</p>
<p><span id="more-618"></span>Первое, что пришло в голову — ресторан. Shared — небольшой стол, заполненный едой, а вокруг стоя тянет руки толпа студентов. VPS — типичный ресторанный стол, у каждого своя еда на тарелке, присутствует малая группа людей. Dedicated — один за столом. Cloud — вот тут самое интересное. Толком придумать идею не получилось. Если у кого получится, велкам в комменты.</p>
<p>Чтобы восстановить пробел с Cloud, решил перенести фокус со стола на одну емкость — стакан. Shared — стакан с жидкостью забит трубочками. VPS — стакан перегородками поделен на 4 равные части, в каждой части своя трубочка. Dedicated — одна трубочка в стакане. Cloud — система стаканов, соединенных трубочками. К этой системе равномерно подключаются трубочки &laquo;клиентов&raquo;.</p>
<p>Всё сходится, аналогия получается хорошая. Но нормально изобразить ее графически у меня не вышло. Выкладываю то, что получилось :) Если кто-то сможет нормально нарисовать эту красоту, буду весьма признателен :)</p>
<p><a href="http://valera.ws/wp-content/uploads/2011/09/hosting.jpg"><img class="aligncenter size-full wp-image-619" title="hosting" src="http://valera.ws/wp-content/uploads/2011/09/hosting.jpg" alt="Хостинг" width="600" height="450" /></a></p>
<p>Если я не первый, кто провел такую аналогию, было бы также интересно об этом узнать.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.09.18~hosting-types-comparison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Не работает скрол на тачпаде после обновления ubuntu?</title>
		<link>http://valera.ws/2011.09.17~touchpad-not-works-after-ubuntu-update/</link>
		<comments>http://valera.ws/2011.09.17~touchpad-not-works-after-ubuntu-update/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 13:27:02 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=615</guid>
		<description><![CDATA[После обновления ubuntu до 11.04, которое я все откладывал аж до сегодняшнего дня, перестал работать скрол на боковой области тачпада, который прекрасно работал из коробки ранее. Решение было нагуглено довольно быстро, но сам факт наличия таких проблем (у многих пользователей) &#8230; <a href="http://valera.ws/2011.09.17~touchpad-not-works-after-ubuntu-update/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>После обновления ubuntu до 11.04, которое я все откладывал аж до сегодняшнего дня, перестал работать скрол на боковой области тачпада, который прекрасно работал из коробки ранее. Решение было нагуглено довольно быстро, но сам факт наличия таких проблем (у многих пользователей) печалит&#8230; Куда-то не туда двигается Ubuntu в последнее время.</p>
<p><span id="more-615"></span>Решение. В консоли выполняем следующие команды:</p>
<pre><code>$ sudo modprobe -r psmouse
$ sudo modprobe psmouse proto=imps</code></pre>
<p>Заработал скрол? У меня — да. Если у вас тоже, по результат надо закрепить. Для этого открываем <em>/etc/modprobe.d/options</em> и добавляем туда строку.</p>
<pre><code>sudo gedit /etc/modprobe.d/options</code></pre>
<p>Строка:</p>
<pre><code>options psmouse proto=imps</code></pre>
<p>Теперь и после ребута скрол останется работать.</p>
<p>P.S. Печальные последствия такого способа заключаются в том, что из настроек мыши пропадает вкладка Touchpad.</p>
<p>Решение отсюда: <a href="http://superuser.com/questions/136568/get-back-the-touchpad-scrolling-missing-in-kubuntu-10-04">http://superuser.com/questions/136568/get-back-the-touchpad-scrolling-missing-in-kubuntu-10-04</a></p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.09.17~touchpad-not-works-after-ubuntu-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Бэкап личных данных в облаках</title>
		<link>http://valera.ws/2011.07.11~cloud-backup/</link>
		<comments>http://valera.ws/2011.07.11~cloud-backup/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 18:32:17 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[облака]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=610</guid>
		<description><![CDATA[Мой архив фотографий на данный момент занимает 32 Гб. Видео-архив — 43 Гб. Если сложить, будет 75 Гб. Если прикинуть на перспективу, то будет 100—150 Гб. Именно столько места надо мне, чтобы бэкапить эти данные где-то еще, кроме собственного домашнего &#8230; <a href="http://valera.ws/2011.07.11~cloud-backup/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-612" title="cloud-backup" src="http://valera.ws/wp-content/uploads/2011/07/cloud-backup1.png" alt="" width="200" height="146" />Мой архив фотографий на данный момент занимает 32 Гб. Видео-архив — 43 Гб. Если сложить, будет 75 Гб. Если прикинуть на перспективу, то будет 100—150 Гб. Именно столько места надо мне, чтобы бэкапить эти данные где-то еще, кроме собственного домашнего сервера.</p>
<p><span id="more-610"></span></p>
<p>Если взять одного из ведущих российских облачных хостеров — <a href="http://selectel.ru/cloud/">selectel.ru</a>, у которого самая низкая стоимость за Гб/час хранения данных (0,005 р), то месяц хранения бэкапов будет стоить 360—540 рублей в месяц. Это около $15. Много. При этом, платить надо еще за трафик и работу виртуальной машины во время синхронизации.</p>
<p>Рассмотрим <a href="http://aws.amazon.com/s3/">сервис хранения файлов от Amazon</a>. До терабайта там цена от $0.093 за Гб. Для хранения моих бэкапов понадобится от $9,3—14. Это поменьше, но там нет виртуальной машины, а значит сложнее синхронизация.</p>
<p>Для сравнения посмотрим на <a href="https://www.dropbox.com/pricing">Dropbox</a>. Мы знаем, что он хранит пользовательские данные на Amazon S3. Значит, не должно быть дешевле, чем в расчетах Амазона. Аккаунт Pro (100 Гб) стоит $20 в месяц. Да, дороже более чем в 2 раза.</p>
<p>Может <a href="https://one.ubuntu.com/plans/">Ubuntu One</a>? 20 Гб у них стоят $3. Значит я заплачу примерно $14—22. Тоже дорого&#8230;</p>
<p>Стоимость внешних HDD от 250 Гб начинается от $55. Хоть надежность такого бэкапа будет гораздо ниже, чем в случае облаков, да и возни больше (ведь нельзя хранить винчестер в той же локации, где и сервер; а значит нужно либо носить его туда-сюда, либо договариваться с кем-то о бэкапах через интернет). Зато цена приятная: даже по Амазону наш HDD окупится через 6 месяцев.</p>
<p>Во всех расчетах не учитывались затраты на трафик. При первой синхронизации они будут велики ($10—20 для облаков), но при последующих синхронизациях они будут относительно небольшими (трудно подсчитать, ну пусть будет $1—2 в мес.). Для внешнего HDD затрат на первый слив не будет.</p>
<p>Есть также сервис, специализирующиеся на бэкапе в <a href="http://valera.ws/tag/%d0%be%d0%b1%d0%bb%d0%b0%d0%ba%d0%b0/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  облака">облака</a>. Гуглятся по запросу «<a href="http://www.google.com/search?&amp;q=cloud+backup">cloud backup</a>». Я несколько штук посмотрел, но цен ниже $15 в месяц за 100 Гб не видел. Только больше.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.07.11~cloud-backup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Maps Labs</title>
		<link>http://valera.ws/2011.07.08~google-maps-labs/</link>
		<comments>http://valera.ws/2011.07.08~google-maps-labs/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 20:15:05 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Все рубрики]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[карты]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=602</guid>
		<description><![CDATA[Сегодня почти случайно узнал, что для Google Maps есть такой же раздел Labs, как в Gmail. Правда он намного скромнее по количеству эксперементальных фич. Чтобы попасть в список Labs, нужно зайти в Google Maps и нажать на шестеренку в правом &#8230; <a href="http://valera.ws/2011.07.08~google-maps-labs/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://valera.ws/wp-content/uploads/2011/07/glabs.png"><img class="alignleft size-full wp-image-606" title="glabs" src="http://valera.ws/wp-content/uploads/2011/07/glabs.png" alt="" width="150" height="83" /></a>Сегодня почти случайно узнал, что для <a href="http://valera.ws/tag/google/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Google">Google</a> Maps есть такой же раздел Labs, как в Gmail. Правда он намного скромнее по количеству эксперементальных фич.</p>
<p>Чтобы попасть в список Labs, нужно зайти в Google Maps и нажать на шестеренку в правом верхнем углу. В выпадающем меню выбрать &laquo;Maps Labs&raquo;.</p>
<p><span id="more-602"></span></p>
<p><img class="alignnone" src="http://feedbee.server.valera.ws/pictures/gmaps/screen-1.png" alt="" width="672" height="320" /></p>
<p>Откроется окно со списком, где можно включить/отключить ту или иную фичу.</p>
<p><img class="alignnone" src="http://feedbee.server.valera.ws/pictures/gmaps/screen-2.png" alt="" width="637" height="500" /></p>
<p>Полезными я бы назвал только две первых: измерение расстояний и быстрый зум. Причем, расстояния — это то, чего мне больше всего не хватало в гуглокартах. В принципе, я считаю наличие измерителя расстояний в стандартной морде Яндекс.Карт самым весомым их преимуществом.</p>
<p><img class="alignnone" src="http://feedbee.server.valera.ws/pictures/gmaps/screen-3.png" alt="" width="640" height="563" /></p>
<p>Измерение расстояний включается нажатием на кнопку с линейкой, которая появится в левом нижнем углу карты после включения фичи. Правда работает функционал пока немного глюкаво. В частности, кнопка пропадает после обновления страницы и не появляется, пока не выключишь/включишь ее заново.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.07.08~google-maps-labs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хорошее резюме</title>
		<link>http://valera.ws/2011.05.02~good-resume/</link>
		<comments>http://valera.ws/2011.05.02~good-resume/#comments</comments>
		<pubDate>Mon, 02 May 2011 14:11:23 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=573</guid>
		<description><![CDATA[Работодателю нужно оценить соответствие соискателя работы своим требованиям до собеседования, чтобы определиться, тратить ли время и свое, и соискателя, на личную встречу. Это можно сделать за счет просмотра резюме и выполнения тестового задания. Тестовое задание сходу дают не все, а &#8230; <a href="http://valera.ws/2011.05.02~good-resume/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p><img class="alignleft size-full wp-image-589" title="resume" src="http://valera.ws/wp-content/uploads/2011/05/resume.png" alt="" width="150" height="119" />Работодателю нужно оценить соответствие соискателя работы своим требованиям до собеседования, чтобы определиться, тратить ли время и свое, и соискателя, на личную встречу. Это можно сделать за счет просмотра резюме и выполнения тестового задания.</p>
<p><span id="more-573"></span></p>
<p>Тестовое задание сходу дают не все, а вот резюме читают, пожалуй, все работодатели. В зависимости от конъюнктуры рынка (отношения спроса к предложению) на этапе просмотра резюме отсеиваются до 90 % соискателей. У меня нет точных среднестатистических данных, но эмпирически рискну предположить, что в среднем отсеиваются 60—70% соискателей.</p>
<p>Это значит, что резюме играет очень весомую роль в процессе поиска персонала и поиска работы. Работодателю очень важно получить максимально качественное резюме, чтобы не отсеять хорошего кандидата из-за плохого резюме. Соискателю важно максимально качественно составить резюме, чтобы не упустить хорошую работу, где плохие резюме обязательно отложат в пачку «fail», т.к. ценят свое время.</p>
<p>Выходит, что всем выгодно, когда резюме составлено хорошо. А что значит хорошо? Это значит, что соискатель хорошо подаст все свои навыки, опыт и преимущества перед конкурентами, а работодатель получить всю первичную интересующую его информацию о кандидате.</p>
<p>Стандартное резюме на все случаи жизни никогда не решит эти задачи. В каждой отрасли есть свои особенности и акценты, для каждой специальности есть своя специфика подачи информации. По этому резюме нужно составлять по-разному для разных специальностей, причем один человек может составить несколько разных резюме, если претендует на разные позиции (хотя это не обязательно, если позиции схожи).</p>
<p>Я постоянно участвую в поиске веб-разработчиков и за последнее время видел много разных резюме. Что особенно важно, приглашая людей на собеседование практически всегда связь между стилем написания резюме и результатами оценки кандидата прослеживается очень хорошо. Хорошее, подробное резюме с информацией по делу — кандидат хороший. Куча воды, названий технологий, но отсутствие четкой информации по опыту работы — кандидат «ниочем».</p>
<p>Именно по этой причине я всегда буду сторонником того, что свое резюме надо писать самостоятельно, хоть и по шаблону. Т.е. не стоит копировать стандарные резюме, заменяя отдельные слова и цифры. В него нужно вложить каплю своей индивидуальности. Лучше написать пару абзацев текста, где будет написано про опыт работы соискателя. Перечислить использованные технологии. Рассказать о том, как соискатель оценивает свои навыки и опыт работы с технологиями, которые используются в работе по данной специальности. При этом не стоит вообще писать про то, что соискатель не умеет, либо умеет плохо, и про то, что не имеет отношения к делу.</p>
<p>С позиции работодателя расскажу о своем видении резюме веб-разработчика. Язык программирования при этом значения не имеет.</p>
<p>От соискателя в резюме важно получить следующую информацию:</p>
<ol>
<li>минимальную информацию о себе, как о личности;</li>
<li>краткую информацию об образовании;</li>
<li>подробную информацию о предыдущих местах работы;</li>
<li>подробную информацию о навыках и опыте соискателя в контексте вакансии (позиции, должности).</li>
</ol>
<p>Эти четыре пункта обычно содержит любое резюме по любой специальности. И на этом уровне оно стандартное. А вот какую информацию нужно писать по этим пунктам и как ее преподнести? Это уже позиционно-уникально.</p>
<p><strong>1) Коротко о себе</strong><br />
 Таблица или список со следующими строками. Все строки обязательны. Приложенная фотография является плюсом, т.к. психологически предполагает более серьезное восприятие резюме работодателем.</p>
<p style="padding-left: 30px;">1.1) ФИО (отсюда станет ясен пол, так что писать нужно полностью)<br />
 1.2) Год рождения (или возраст, если резюме рассчитано на короткий период)<br />
 1.3) Город (место жительства, адрес не нужен)<br />
 1.4) Семья (брак, дети)<br />
 1.5) Образование (высшее/среднее/базовое или др.)<br />
 1.6) Отношение с армией (не обязательно писать, но все равно об этом спросят)<br />
 1.7) Иностранные языки (перечислить языки с указанием уровня влядения; не стоит тут писать русский, украинский или белорусский)<br />
 1.8) Позиция (должность; в одной организации может быть несколько вакансий, к которым подойдет ваше резюме, поэтому указать позицию или позиции, на которые претендует соискатель, нужно обязательно)<br />
 1.10) Желаемая заработная плата (реальная заработная плата, на которую нацелен соискатель в настоящее время; это очень важная для работодателя информация, и если соискатель знает, что он хочет, нужно обязательно указать, если не знает — на это укажет отсутствие данной информации; можно писать в стиле «от Х»)</p>
<p><strong>2) Образование</strong><br />
 Работодателю часто нужно знать, где проходил обучение соискатель и по какой специальности. Даже если образование не рассматривается как требование и важный фактор при выборе среди кандидатов, указание этой информации необходимо даже для справки. Обычно обучение на определенных факультетах определенных вузов дает хорошее преимущество кандидату в рамках специальности. Указывать нужно все места обучения, выше школьного уровня образования.</p>
<p style="padding-left: 30px;">2.1) Учебное заведение<br />
 2.2) Факультет<br />
 2.3) Специальность<br />
 2.4) Годы обучения (лучше указать время начала и окончания обучения, т.к. иногда возникают непонятные ситуации, когда указан только один год)<br />
 2.5) Окончен ли успешно? (если обучение прервано, об этом обязательно нужно написать отдельно)</p>
<p><strong>3) Места работы</strong><br />
 Работодателю важно знать предыдущий опыт работы соискателя. Этот опыт с разных точек зрения характеризует соискателя как профессионала. Важно не только, где работал соискатель, но и чем занимался, за что отвечал, чего добился, чем пользовался. Здесь лучше всего подходит таблица, но можно оформить и списком.</p>
<p style="padding-left: 30px;">3.1) Название компании (так, как оно пишется «в миру»)<br />
 3.2) Сколько человек в организации/подразделении (опционально, если компания неизвестная, просто поможет оценить ее масштаб)<br />
 3.3) Должность (позиция, так, как она называлась в компании; можно дополнить общепринятым названием позиции, если оно отличается от принятого в компании)<br />
 3.4) Время работы (лучше всего в формате мм.гггг — мм.гггг / н.в.)<br />
 3.5) Обязанности (тезисно: что реально входило в круг обязанностей, пояснения и комментарии будут уместны)<br />
 3.6) Сколько человек в подчинении (если были люди в подчинении, об этом обязательно стоит упомянуть, иначе — пропускается пункт — 0 писать не нужно)<br />
 3.7) Проекты (это отдельный список проектов, в которых соискатель принимал участие в компании; если подход не проектный или если нет желания все расписывать, можно просто описать в текстовом виде, что соискатель <strong>с</strong>делал, работая в компании)<br />
 3.7.1) Название проекта с кратким описанием (из этого должно быть понятно, какие разработки велись в рамках проекта)<br />
 3.7.2) Временные рамки участия в проекте<br />
 3.7.3) Результаты (как личные, так и общие)<br />
 3.8) Причина ухода (если указывать желания нет, не надо, но все равно скорее всего на собеседовании спросят)</p>
<p><strong>4) Технологии</strong><br />
 Очень важный блок. Из него должно стать понятно, каким навыками соискатель владеет, с какими технологиями имел опыт работы и какой этот опыт, как соискатель оценивает свои знания. Информация обычно подается в табличном виде с колонками: <em>название технологии</em>, <em>оценка своего уровня</em> (по любой шкале, но не менее чем из 3-х уровней: начальный, средний, продвинутый), <em>сколько лет опыта</em>.<br />
 Здесь нужно писать только то, что уместно в контексте позиции. Не стоит указывать технологии, по которым уровень соискателя такой, который не позволит применение технологии на практике без дополнительного обучения. Информация разбивается на отдельные группы:</p>
<p style="padding-left: 30px;">4.1) Языки программирования, разметки, запросов и т.д. (т.е. все, что является языком чего-либо или близко к этому)<br />
 4.2) Фрэймворки и библиотеки (стоит указывать только общеизвестные; нет смысла указывать самостоятельно разработанные библиотеки и фрэймворки, если ими пользуется только сам соискатель или его [бывшие] коллеги)<br />
 4.3) Технологии (то, что не является языком или библиотекой, но существует как стандартизированная и/или общеизвестная технология: AJAX, Web Services (SOAP), COM/OLE и т.д.)<br />
 4.4) Операционные системы (если у соискателя в арсенале опыт работы только с несколькими версиями Windows, этот пункт лучше вообще опустить; он имеет смысл, когда есть опыт работы с 2-мя и более разными ОС; версии одной и той же ОС лучше объединить в одну строку; разные дистрибутивы Linux/BSD/UNIX = разные ОС; необходимо указание уровня: администрирование сервера, либо использование в качестве десктопа)<br />
 4.5) Прикладное программное обеспечение (IDE, ПО для проектирования, разработки, тестирования, специфичное для специальности; не стоит сюда писать программы общего назначения, такие как Total Commander, FAR,  MS Office, gedit и т.д.)<br />
 4.7) Другое (если есть еще что-то важное, о чем соискателю хочется рассказать, следует это сделать)</p>
<p>Резюме лучше всего распространять в формате PDF. Если в качестве формата все же выбран Microsoft Word, то это должен быть формат DOC не выше версии Word 2003. Категорически не рекомендуется размещать резюме прямо в письме или в текстовом файле. Лучше сделать вложение к письму (не стоит размещать ссылку на скачивание резюме). Невыполнение этих требований говорит о неуважении к работодателю и вызывает аналогичное отношение к соискателю.</p>
<p>В моей практике был случай, когда в ответ на вакансию я получил письмо следующего содержания: «Здравствуйте. Слать резюме надоело, поэтому не буду. Если у вас действительно есть сложные задачи и хорошо поставлен рабочий процесс, звоните +37529&#8230;..». Сомневаюсь, что с таким подходом человеку удастся найти работу. Естественно, это письмо я проигнорировал. Через несколько дней этот человек перезвонил по телефону. Конечно, стоило сразу сообщить ему, что даже разговаривать с ним нет желания. Но я этого не сделал, и постарался более-менее вежливо с ним поговорить. Через пару минут разговор был закончен по смыслу тем, что он нам не подходит.</p>
<p>Уважайте работодателя. Уважайте его вопросы на собеседовании, даже если они кажутся вам глупыми, несерьезными, легкими/сложными и т.д. На собеседовании представитель работодателя задает такие вопросы, которые нужны лично ему для вашей оценки. Постарайтесь из любого собеседования получить для себя некий опыт.</p>
<p>И помните, что вы делаете такой же выбор среди работодателей, как и работодатели среди соискателей. Так что активно задавайте вопросы, анализируйте адресованные вам вопросы — за ними скрывается дополнительная информация о работодателе. Для сравнения работодателей можно использовать <a href="http://valera.ws/2011.05.02~employee-factor-analysis/">факторную модель</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.05.02~good-resume/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Факторный анализ места работы</title>
		<link>http://valera.ws/2011.05.02~employee-factor-analysis/</link>
		<comments>http://valera.ws/2011.05.02~employee-factor-analysis/#comments</comments>
		<pubDate>Mon, 02 May 2011 11:07:25 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=570</guid>
		<description><![CDATA[Иногда могут возникать ситуации, когда надо оценить место работы. Если вы ищите работу, нужно как-то сравнить предложения от разных компаний между собой и/или с текущим местом работы. Если не ищите, возможно вы захотите сравнить свои условия работы с условиями в &#8230; <a href="http://valera.ws/2011.05.02~employee-factor-analysis/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-579" title="workpalce" src="http://valera.ws/wp-content/uploads/2011/05/workpalce.png" alt="" width="200" height="176" />Иногда могут возникать ситуации, когда надо оценить место работы. Если вы ищите работу, нужно как-то сравнить предложения от разных компаний между собой и/или с текущим местом работы. Если не ищите, возможно вы захотите сравнить свои условия работы с условиями в организациях у друзей. Сравнивать можно по-разному: «на глаз», когда мысленно прикидываешь преимущества и недостатки одной и другой стороны, а затем решаешь, что лучше; по конкретным позициям — график, з/п, интерес и т.д. с конкретной оценкой по каждой позиции.</p>
<p>Второй вариант, конечно, будет точнее с точки зрения логики, но первый может оказаться ближе к реальности, т.к. выбор места работы зачастую делается сердцем, а не умом.</p>
<p>Но все же, если мы хотим умом сравнить несколько мест работы, удобно делать это с помощью некоторой модели факторов, по которым будет вестись точное сравнение. Вообще, понятие факторной модели имеет четкое математическое значение, но я его сильно упрощу и буду использовать у себя по своей схеме без сложной математики.</p>
<p><span id="more-570"></span></p>
<p>Факторную модель можно составить для любой специальности, но она должна быть специализирована. Делать универсальную модель для всех сразу нет смысла — ее точность будет очень плохая. Я составил модель для своей специальности — разработчик ПО.</p>
<h2>Факторный анализ места работы для разработчика ПО</h2>
<ol>
<li>Интерес
<ul>
<li>Проект
<ul>
<li>тематика</li>
<li>технологии</li>
<li>уровень сложности</li>
<li>нагрузки в продакшане</li>
</ul>
</li>
<li>Зона ответственности
<ul>
<li>разброс обязанностей</li>
<li>принятие решений</li>
</ul>
</li>
<li>Подчиненные
<ul>
<li>количество</li>
<li>качество</li>
</ul>
</li>
<li>Заказчик
<ul>
<li>локальность</li>
<li>культурные различия</li>
<li>требовательность</li>
</ul>
</li>
</ul>
</li>
<li>Условия труда
<ul>
<li>Офис
<ul>
<li>эстетика</li>
<li>расположение</li>
<li>размер, оформление  комнаты и ключевых узлов</li>
<li>вентиляция и кондиционирование</li>
<li>ремонт (состояние)</li>
<li>стоянка</li>
</ul>
</li>
<li>Рабочее место
<ul>
<li>компьютер</li>
<li>монитор</li>
<li>админские права и ограничения по ОС/ПО</li>
<li>интернет и ограничения</li>
<li>стол, стул</li>
<li>освещение</li>
</ul>
</li>
<li>Коллеги и руководство
<ul>
<li>размер команды</li>
<li>адекватность руководителя</li>
<li>простота административной структуры</li>
<li>постановка работы команды</li>
</ul>
</li>
<li>График
<ul>
<li>время работы</li>
<li>гибкость графика</li>
<li>отработки</li>
</ul>
</li>
</ul>
</li>
<li>Оплата
<ul>
<li>Зарплата
<ul>
<li>сумма</li>
<li>валюта</li>
<li>рост</li>
</ul>
</li>
<li>Социальные вопросы
<ul>
<li>социальный пакет</li>
<li>корпоративы</li>
</ul>
</li>
<li>Проблемы
<ul>
<li>задержки зарплаты</li>
<li>штрафы</li>
<li>ограничения контракта</li>
</ul>
</li>
</ul>
</li>
</ol>
<p>Оценка по каждому фактору:</p>
<ul>
<li>0 — нейтрально, нормально,</li>
<li>­­−1 — плохо,</li>
<li>+1 — хорошо.</li>
</ul>
<p>Проставляется оценка по каждому фактору 3-го порядка. Важно понимать, что оценка +1 всегда обозначает, что по данному вопросу обстоятельства в вашу пользу. Не важно как называется фактор: «уровень зарплаты» или «штрафы», +1 всегда будет обозначать, что по этому фактору вы в положении «хорошо» для себя. Соответственно −1 — значит «плохо» для вас.</p>
<p>Оценки суммируются по группам — факторам 1-го порядка. Каждому фактору 1-го порядка выставляется субъективный вес, который приводится к коэффициентам. Например, устанавливаются веса: «Интерес» — 10, «Условия труда» — 7, «Оплата» — 8. Тогда коэффициенты будут: «Интерес» — 40% (10/(10+7+8)=0,4), «Условия труда» — 28% (0,28), «Оплата» — 32% (0,32).</p>
<p>Коэффициент при факторе 1-го порядка покажет, какую долю в оценке займет этот фактор. Такой подход позволяет сильно влиять на результат в зависимости от предпочтений разных людей не меняя модели: кому-то уровень заработной платы в 2 раза (условно) важнее интереса в работе, а кому-то наоборот. В первом случае «Интерес» может получить 20%, «Оплата» — 40%, во втором соответственно наоборот.</p>
<p>Полученная сумма по каждому фактору 1-го порядка умножается на коэффициент этого фактора и делится на количество его факторов 3-го порядка. Затем полученные числа суммируются.</p>
<p>В итоге получается число в процентах, определяющее общую оценку данного места работы относительно идеала.</p>
<p>Факторную модель можно и нужно дополнять факторами, наиболее важными в каждом конкретном случае. Но модель должна быть одинаковой для всех сравниваемых между собой организаций.</p>
<p>Самый лучший способ заполнить факторную модель — наличие «своего» человека в организации. Это особенно актуально, когда работу предлагают по рекомендации.</p>
<p>Если инсайдера нет, то необходимо на собеседовании максимально рассмотреть офис, попросить показать будущее рабочее место и задать максимум вопросов из списка факторов. Ответы на многие вопросы можно получить косвенно.</p>
<p>В модели нельзя проставлять нули в случае отсутствия информации о факторе, т.к. это исказит результат. Если информации по какому-либо фактору нет для большинства сравниваемых организаций, то лучше этот фактор исключить. Иначе — ставьте оценку на основании предположений.</p>
<p>Модель должна быть сбалансирована по факторам 2-го порядка. Если фактор 2-го подяка имеет важное и широкое значение, то факторов 3-го порядка в нем должно быть много. Если значение слабое — мало. В остальных случаях количество факторов 3-го порядка должно быть примерно равным и относительно небольшим.</p>
<p>Три порядка факторов нужны именно для того, чтобы придать модели сбалансированность и взвешенность.</p>
<p>На базе своей можели я создал простейшее веб-приложение, позволяющее <a href="http://valera.ws/extraz/factor/factor.php" target="_blank">считать оценку места работы для разработчика ПО</a>. <a href="http://valera.ws/extraz/factor/factor.tar.gz">Исходники</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.05.02~employee-factor-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Устройство дисковой подсистемы</title>
		<link>http://valera.ws/2011.03.21~disk-subsystem/</link>
		<comments>http://valera.ws/2011.03.21~disk-subsystem/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 19:30:42 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[ОС]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=558</guid>
		<description><![CDATA[Хочу немного поделиться своими познаниями в области дисковой подсистемы операционных систем, файловых систем и работы с ними в ОС Linux. Практическая ценность этой информации заключается в алгоритме простых и быстрых бэкапов разделов, а так же подвод к следующему посту про &#8230; <a href="http://valera.ws/2011.03.21~disk-subsystem/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } --></p>
<p lang="ru-RU"><img class="alignleft size-full wp-image-560" title="disk" src="http://valera.ws/wp-content/uploads/2011/03/disk.png" alt="" width="200" height="123" />Хочу немного поделиться своими познаниями в области дисковой подсистемы операционных систем, файловых систем и работы с ними в <a href="http://valera.ws/tag/%d0%be%d1%81/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ОС">ОС</a> Linux. Практическая ценность этой информации заключается в алгоритме простых и быстрых бэкапов разделов, а так же подвод к следующему посту про мультизагрузочную флэшку. Можно использовать этот материал как первую попытку разобраться принципе работы дисковой подсистемы. Ничего углубленного, все описано очень поверхностно и популярно.</p>
<p lang="ru-RU"><span id="more-558"></span></p>
<p lang="ru-RU">Материал разделен на три части: А — теория, Б — практика, В — создание мультизагрузочной флэшки.</p>
<p lang="ru-RU">А. Общая теория (популярно).</p>
<p lang="ru-RU">1. Железо.</p>
<p lang="ru-RU">Все физические устройства, которые используются нами повседневно для хранения информации (HDD, CD-ROM, флэшка, и даже флопик) — это блочные устройства ввода/вывода (block I/O device). Они могут подключаться к компьютеру через различные интерфейсы: IDE, SATA, eSATA, USB. Операционная система предоставляет единый прозрачный для пользователя и программиста прикладного ПО способ чтения/записи информации с/на эти носители.</p>
<p lang="ru-RU">С железом напрямую общаются драйвера. Драйвер — это программа, загруженная в операционную систему. Он является прослойкой между ОС и устройствами, представляя для ОС стандартный программный интерфейс блочных устройств I/O.</p>
<p lang="ru-RU">2. Данные на физическом диске.</p>
<p lang="ru-RU">Блочными эти устройства называются потому, что информация на них записывается и считывается блоками (секторами, кластерами) фиксированного размера. Размер блока кратен 512 байт. Блочный подход необходим для обеспечения высокой скорости работы дисковой подсистемы.</p>
<p lang="ru-RU">Сам диск форматируется (размечается) на низком уровне (на заводе). Диск состоит из цилиндров. Цилиндр — это окружность на пластине диска. Первые цилиндры расположена в центре пластины диска, последние — на внешнем краю. Каждый цилиндр делиться на секторы. В пределах секторов организуются блоки на диске. Помимо самих данных в блоках записывается информация для контроля ошибок. С этой информацией работает контроллер внутри жесткого диска и она не видна снаружи. Драйвер посылает команды контроллеру диска на уровне «считать 10 блоков 10 цилиндра 20 сектора».</p>
<p lang="ru-RU">Все полезные данные, записанные на носитель, организованы в разделы. В Windows каждый раздел обычно представлен в виде логического диска (C, D, E, …). На сменных носителях (флэшка, компакт-диск, флопик) как правило создан один единственный раздел, на внутренних жестких дисках — наоборот — обычно несколько разделов. Данные в разделе организованы в файловой системе.</p>
<p lang="ru-RU">Для каждого раздела может независимо устанавливаться свой размер блока — размер кластера. Он регулирует баланс скорость/экономичность. Блок — это минимальная адресуемая единица разметки на диске. Кластер объединяет несколько блоков — это минимальная адресуемая единица в разделе.</p>
<p lang="ru-RU">Таким образом устанавливается следующая логическая иерархия (от внизу вверх): блок, сектор, цилиндр — кластер — раздел — файл, каталог.</p>
<p lang="ru-RU">В большинстве файловых систем файл может занимать один или несколько кластеров. Таким образом, если размер файла меньше размера кластера, то файл займет целый кластер. Для любого файла на диске будет выделено количество байт, кратное размеру кластера. Некоторые файловые системы умеют делить один кластер на несколько файлов (упаковка), но это скорей исключение (пока). Таким образом, чем больше размер кластера, тем выше скорость и больше места теряется на полузаполненных кластерах.</p>
<p lang="ru-RU">3. Разметка физического диска.</p>
<p lang="ru-RU">Размер раздела также измеряется в блоках. Именно по этому при разбивке диска на разделы размер, выраженный в байтах, может быть немного подкорректирован программой.</p>
<p>Так как на диске может быть несколько разделов, их нужно где-то перечислить с указанием пределов и свойств каждого раздела. Для этого служит таблица разделов, которая находится в начале физического диска (начало диска — это его первый блок в соответствии с адресацией). В классическом случае она входит в состав MBR (master boot record), которая целиком занимает первый блок. На всю таблицу разделов выделено 64 байта. Каждая запись таблицы состоит из адресов начала и конца раздела, типа раздела, количества секторов в разделе и флага «загруженности» раздела и занимает 16 байт. Таким образом максимальное количество разделов на диске ограничено четырьмя (16 × 4 = 64).</p>
<p lang="ru-RU">Так сложилось исторически, но со временем стало очевидно, что 4 раздела не всегда достаточно. Решение проблемы было найдено. Те разделы, которые размечены в заголовке диска (в MBR), назвали Primary (первичные). Их по прежнему должно быть до 4-х включительно. Дополнительно ввели понятие Extended (расширенных) разделов. Расширенный раздел включает один или более подраздел и не содержит файловой системы. Сам он является полноценным первичным разделом.</p>
<p lang="ru-RU">Так как подразделы расширенного раздела не перечислены в таблице разделов диска, их невозможно пометить как загрузочные. Загрузочный (bootable) раздел — это тот раздел, с которого начинает загружаться операционная система. Он отмечается флагом в своей записи таблицы разделов. Таким образом отметить можно только один из 4-х первичных разделов. Расширенный раздел загрузочным быть не может, так как на нем нет файловой системы.</p>
<p>Разметка расширенного раздела описана в в его начале. По аналогии с MBR существует EBR (Extended boot record), расположенная в первом секторе. В ней описывается разметка логических дисков данного расширенного раздела.</p>
<p lang="ru-RU">На оптическом диске и флэшке обычно размещается только один раздел, так как более мелкое деление там не имеет смысла. Обычно при записи компакт-диска применяется файловая система ISO 9660. Образ диска с этой файловой системой называется ISO-образ. Он часто используется в отрыве от физического диска в качестве контейнера для передачи данных, т. к. любой образ — это побитовая точная копия физического носителя.</p>
<p lang="ru-RU">4. Файловая система.</p>
<p lang="ru-RU">Каждый раздел диска, предназначенный для хранения данных (т. е. все разделы, кроме расширенного) форматируется в соответствии с некоторой файловой системой. Форматирование — это процесс создания структуры файловой системы в некотором пространстве на диске — в разделе. Файловая система организует пользовательские данные в виде файлов, расположенные в некоторой иерархии каталогов (папок, директорий).</p>
<p lang="ru-RU">Структура каталогов и файлов в разделе в классическом случае описана в таблице файлов. Как правило таблица занимает некоторое место в начале раздела. После таблицы пишутся сами данные. Таким образом создается система, где структура описана отдельно, а данные (файлы) хранятся отдельно.</p>
<p lang="ru-RU">В случае удаления файла с диска он удаляется из таблицы файлов. Место, которое он занимал на диске, помечается как свободное. Но физической зачистки этого места не происходит. Когда на диск производится запись, данные записываются в свободное место. Поэтому если после удаления файла создать новый, существует вероятность записи его на место удаленного. При быстром форматировании (используются в подавляющем большинстве случаев) раздела также перезаписывается только таблица. На этих особенностях основана процедура восстановления файлов после удаления или форматирования.</p>
<p lang="ru-RU">В процессе работы на диске могут возникать физические повреждения. Некоторые блоки могут становиться недоступными для чтения. Эти блоки называют «бэдами» (bad sector). Если в процессе чтения диска попадает бэд, происходит ошибка ввода/вывода (I/O error). В зависимости от того, в каком месте появился бэд-блок и сколько их появилось, может потеряеться либо часть содержимого файлов, либо в часть таблицы файлов.</p>
<p lang="ru-RU">При попытке записи в бэд-блок контроллер диска должен определить проблему и выделить для этого блока новое место на поверхности диска, а старое место из использования изъять (relocate bad block). Он делает это незаметно для ОС и драйверов, самостоятельно. Происходит это до тех пор, пока есть резерв места для переноса.</p>
<p lang="ru-RU">5. Работа с диском.</p>
<p lang="ru-RU">Операционная система представляет возможность работы с дисками на уровне файлов, разделов и устройства. Конкретная реализация доступа на каждый уровень зависит от конкретной ОС. Но в любом случае, общим является то, что к физическому диску и к любому его разделу можно обратиться точно так же, как к обычному бинарному файлу. Т. е. в него можно писать данные, из него можно данные считывать. Такие возможности особенно полезны для создания и восстановления образов дисков, клонирования дисков.</p>
<p lang="ru-RU">В ОС семейства UNIX все устройства хранения данных представлены в виде файлов в каталоге /dev:</p>
<ul>
<li>
<p lang="ru-RU">sda, sdb, sdc, … — 	физические диски (HDD, включая внешние, 	флэшки, IDE-сидиромы);</p>
</li>
<li>
<p lang="ru-RU">fd0, fd1 — флопики.</p>
</li>
</ul>
<p lang="ru-RU">Разделы на каждом из дисков доступны в виде sda1, sda2, sd3, …</p>
<p lang="ru-RU">Нумерация дисков происходит в том порядке, в котором их видит BIOS. Нумерация разделов — в порядке создания разделов на диске.</p>
<p lang="ru-RU">Чтобы сделать образ (образ — это побитовая копия информации, размещенной на диске или в разделе) диска целиком (например первого по BIOS — sda), нужно вычитать данные из /dev/sda в любой другой специально созданный для образа файл, используя программу последовательного копирования содержимого файла. Чтобы записать образ в файл, нужно при помощи той же программы вычитать данные из образа в /dev/sda. По аналогии можно создать/восстановить образ раздела (например, первого на первом диске — sda1), обращаясь к /dev/sda1 вместо /dev/sda.</p>
<p lang="ru-RU">6. Монтирование.</p>
<p lang="ru-RU">Чтобы «превратить» дисковое устройство в набор файлов и каталогов, к которым можно получить доступ, его необходимо примонтировать. В Windows как такового монтирования не существует. Там разделы просто подключаются к логическим дискам (C:, D:, E, …). Информация о том, какую букву присвоить какому диску, хранится в самой ОС.</p>
<p>В UNIX понятие монтирования является основоположным в работе с дисками и дает значительно больше гибкости, чем есть в Windows. Монтирование — это процесс привязки некоторого источника образа диска (это либо сам диск, либо файл с его образом) к некоторому каталогу в файловой системе UNIX. Файловая система в UNIX начинается из одной точки — от корневого каталога (/), и никаких логических дисков C, D, E не существует.</p>
<p>В начале загрузки ОС семейства UNIX в корневой каталог / монтируется раздел диска, помеченный как root (корневой). На разделе диска должны быть созданы служебные каталоги ОС, находящиеся в корне файловой системы. К ним могут монтироваться другие разделы, либо файлы могут записываться прямо в основной раздел (примонтрированный к /).</p>
<p>Ключевой момент заключается в том, что источник образа диска (блочное устройство, файл с образом или каталог уже примонтированной файловой системы) можно монтировать к любому каталогу на любом уровне вложенности файловой системы, которая начинается с /. Таким образом, разные логические разделы физического диска представляются каталогами в единой файловой системе в противоположность отдельным файловым системам разных логических дисков в Windows (там каждый диск рассматривается как автономная файловая система, имеющая свой корень).</p>
<p>Для монтирования необходимо указать файловую систему образа, опции монтирования и каталог, к которому будет привязка.</p>
<p>За счет этой гибкости можно привязать один каталог в несколько разных мест в файловой системе, сделать образ диска и примонтировать его не записывая на диск, раскрыть ISO-образ. И все это делается без использования сторонних утилит.</p>
<p>7. MBR — загрузочная область.</p>
<p>В начале физического диска обычно расположена MBR (master boot record). Это загрузочная область диска. При загрузке компьютера BIOS определяет какой диск является первичным (primary) и ищет на нем MBR. Если она найдена, то ей передается управление. Если нет, выводится ошибка о том, что загрузочный диск не найден.</p>
<p>В MBR, кроме таблицы разделов (описано выше), располагается код программы, которая загружается в память и выполняется. Именно эта программа должна определить загрузочный раздел на диске и передать ему управление. Передача управления происходит аналогично: первый блок (512 байт) загрузочного раздела помещается в оперативную память и выполняется. Он содержит программный код, который инициирует загрузку ОС.</p>
<p lang="ru-RU">За счет того, что управление от BIOS при загрузке компьютера передается программе, записанной на диске, есть возможность сделать выбор загрузочного раздела более гибким. Это и делают загрузчики GRUB и LILO, широко применяемые в мире UNIX. Последний загрузчик в настоящее время использовать на современных компьютерах смысла нет. С помощью GRUB можно предоставить пользователю выбор, какой раздел загружать и каким образом.</p>
<p>Код GRUB слишком большой, чтобы поместиться в MBR. Поэтому он устанавливается на отдельном разделе (обычно в том разделе, который монтируется в /boot) с файловой системой FAT, FFS или Ext2. В MBR записывается код, который загружает код GRUB с определенного раздела и передает ему управление.</p>
<p>GRUB самостоятельно или с помощью пользователя определяет с какого раздела должна происходить загрузка. В случае Winsows-раздела ему просто передается управление точно так же, как это было бы из обычной MBR. В случае Linux-а загрузчик выполняет более сложные действия. Он загружает в память ядро ОС и передает ему управление.</p>
<p>Сделать бэкап загрузочной области диска так же легко, как бэкап всего диска или отдельного раздела. Суть в том, что MBR занимает первые 512 байт диска /dev/sda. Следовательно, для бэкапа MBR необходимо вычитать первые 512 байт /dev/sda в файл, а для восстановления — наоборот — файл вычитать в /dev/sda.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.03.21~disk-subsystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Почему Debian живее всех живых?</title>
		<link>http://valera.ws/2011.02.06~debian-6-released/</link>
		<comments>http://valera.ws/2011.02.06~debian-6-released/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 09:17:43 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=549</guid>
		<description><![CDATA[Копипаст с Хабрахабра из комментариев пользователей к теме выхода Debian 6.0. Мне понравился ответ. Вопрос: Озадаченно смотрю на версии «свежего софта»… На моей бубунте уже как минимум Гном, офис и ядро более новых версий. Подозреваю, если посмотрю на прочий установленный &#8230; <a href="http://valera.ws/2011.02.06~debian-6-released/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-552" title="debian-6-0-rgp-460" src="http://valera.ws/wp-content/uploads/2011/02/debian-6-0-rgp-460.png" alt="" width="118" height="141" />Копипаст с Хабрахабра из комментариев пользователей к <a href="http://habrahabr.ru/blogs/debian/113229/" target="_blank">теме выхода Debian 6.0</a>. Мне понравился ответ. Вопрос:</p>
<blockquote><p>Озадаченно смотрю на версии «свежего софта»…</p>
<p>На моей бубунте уже как минимум Гном, офис и ядро более новых версий. Подозреваю, если посмотрю на прочий установленный или доступный в репозиториях софт — ситуация будет аналогичной.</p>
<p>Объясните — в чем смысл? Только в «проверенности» и стабильности этих версий?</p>
</blockquote>
<p><span id="more-549"></span></p>
<p>Ответ:</p>
<blockquote><p>Да. И это «только» весьма дорогого стоит. Более того, в рамках политики дебиана обновляться версии будут только на security fix&#8217;ы, то есть никаких новых фич до момента явного dist-upgrade&#8217;а. Сравните с убунтой, в которой каждые N дней пачка обновляемых пакетов.</p>
<p>Для десктопа это, может быть и нормально, но для сервера — неприемлимо. Я лично несколько раз сталкивался с дурацкими проблемами при обновлении версий (к счастью, только на декстопе). В списке лидеров — evolution (похерил архив почту), krusader (похерил половину настроек), deluge (криво подцепил старые настройки).</p>
<p>Если такой же сюрприз произойдёт на продакт-сервере, это будет очень не смешно. Особенно, если учесть сложность отката некоторых изменений в распределённых системах, даже при наличии бэкапа.</p>
<p>Таким образом, stable — это идеальное решение для сервера. А sid/<a href="http://valera.ws/tag/ubuntu/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Ubuntu">ubuntu</a> — вполне хорошо для _своего_ десктопа (решать проблемы похерившейся почты у себя неприятно, но решать их же у главбуха — куда грустнее).</p>
<p>Кстати, ровно той же политики придерживается и RHEL (CentOS) — у них в пятой версии до сих пор 2.6.18, хоть и с кучей бэкпортов.</p>
</blockquote>
<p>© <a href="http://amarao.habrahabr.ru/" target="_blank">amarao</a>, <a href="http://habrahabr.ru/blogs/debian/113229/#comment_3634204" target="_blank">Хабрахабр</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.02.06~debian-6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL-авторизация на сайте</title>
		<link>http://valera.ws/2011.02.05~ssl-auth/</link>
		<comments>http://valera.ws/2011.02.05~ssl-auth/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 20:24:03 +0000</pubDate>
		<dc:creator>Валера Леонтьев</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[байнет]]></category>
		<category><![CDATA[браузеры]]></category>

		<guid isPermaLink="false">http://valera.ws/?p=546</guid>
		<description><![CDATA[Возникла задача: дать пользователю возможность авторизации на сайте в защищенном режиме. Т.е. так, чтобы его пароль не могли перехватить через канал связи. Какие есть варианты решения задачи, как решают эту задачу другие? Об этом чуть подробнее. Полностью защитить протокол общения &#8230; <a href="http://valera.ws/2011.02.05~ssl-auth/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-547" title="https-background" src="http://valera.ws/wp-content/uploads/2011/02/https-background-150x150.jpg" alt="" width="150" height="150" />Возникла задача: дать пользователю возможность авторизации на сайте в защищенном режиме. Т.е. так, чтобы его пароль не могли перехватить через канал связи. Какие есть варианты решения задачи, как решают эту задачу другие? Об этом чуть подробнее.</p>
<p><span id="more-546"></span>Полностью защитить протокол общения пользователя с сервером можно только одним способом — шифрование трафика. Экзотические способы шифрования, а также создание различного вида тоннелей мы не рассматриваем. Только обычное <a href="http://valera.ws/tag/ssl/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  SSL">SSL</a>-шифрование протокола HTTP, которое поддерживает любой современный браузер — HTTPS.</p>
<p>Причем, работает нормально HTTPS только в том случае, если для пользователя не произошло незаметной подмены сертификата (как это делает софт на подобии <a href="http://falcongaze.ru" target="_blank">SecureTower</a>). В случае, если сертификат подменяется незаметно или пользователя в открытую заставляют принять невалидный сертификат (т.к. иначе ничего не будет вообще) HTTPS работать перестает.</p>
<p>И вот, учитывая это, возникает вопрос: если полностью защитить трафик мы не можем, то можем ли мы защитить хотябы самое важное? Например, пароль. В принципе, можем, но тоже не на 100%. Пароль можно хэшировать до передачи на сервер JavaScript-ом. Тогда перехватчик получить хэш. Он сможет по нему авторизоваться, но сам пароль не увидит. Правда, его можно подобрать брутфорсом. С шифрованием самого пароля (вместо хэширования) картина примерно та же, только реализация гораздо сложнее.</p>
<p>Давать возможность пользователю работать с сайтом по HTTPS можно, но заставлять нужно только тогда, когда шифрование реально необходимо: например, в интернет-банкинге. Дело в том, что у некоторых компаний могут быть закрыты исходящие соединения на 443-й порт, либо запрещен бинарный трафик.</p>
<p>HTTPS-трафик создает дополнительную нагрузку на сервер, прежде всего на процессор, а так же замедляет передачу информации пользователю. Этот еще два камня в его огород. Вывод: если нет острой необходимости, не нужно заставлять и, возможно, даже рекомендовать пользователю пользоваться HTTPS.</p>
<p>Как вариант, можно проводить по защищенному протоколу только авторизацию. Обычно пользователю дают возможность выбрать способ авторизации: защищенный или обычный. Тот, кому важна безопасноть, выберет защищенный способ при условии, что он для него технически доступен.</p>
<p>Но в этом случае большинству пользователей эта защита может оказаться непонятной и ненужной. Если мы хотим им помочь, то следует определить, доступен ли клиенту HTTPS автоматически и, в зависимости от результата, установить обычную авторизацию, либо защищенную. Только пользовалею надо сообщить о том, какой способ выбран (можно графически).</p>
<p>Именно так поступили в Яндексе. У них я подсмотрел способ определения доступности HTTPS. Подгружается JS с https://, который устанавливает флаг в DOM-модели страницы. Форма авторизации ведет себя по разному в зависимости от этого флага.</p>
<p>Хэшировать ли пароль? Это может иметь значение только в одном случае: если у пользователя один пароль на несколько сервисов. Тогда перехватчик не увидит пароля в открытом виде, чтобы использовать его на других сервисах. Но подобрать брутфорсом пароль все равно возможно. Только это уже не так тривиально, как подсмотреть в открытом виде. Так что если вы на стороне пользователя, постарайтесь пароль хэшировать до передачи.</p>
<p><strong>А как делают другие?</strong></p>
<p>Про Яндекс я уже рассказал. Добавлю, что пароль он передает в открытом виде и не пускает на главную страницу портала по HTTPS.</p>
<p>Mail.ru ведет себя как Яндекс, только их способа определения поддержки HTTPS я не нашел (хотя и не глубоко искал).</p>
<p><a href="http://valera.ws/tag/google/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Google">Google</a> работает по HTTPS нормально. Пароль передает в открытом виде. Авторизацию по умолчанию предлагает защищенную. Способов определения, поддерживает  ли клиент HTTPS, я не нашел.</p>
<p>Facebook, как и Google, прекрассно работает по HTTPS. Авторизация по умолчанию защищенная. Пароль в открытом виде.</p>
<p>Вконтакте, Одноклассники, TUT.BY и Onliner.by по HTTPS не отвечают, защищенную авторизацию не предлагают, пароль идет в открытом виде.</p>
<p>oz.by по HTTPS предлагает принять самоподписанный сертификат, чтобы потом произвести редирект на HTTP. Пароль в открытом виде.</p>
<p>Вот такая статистика. Западные ресурсы и пользователи давно освоили основы безопасности в сети. Ведущие российские ресурсы защищают хотябы авторизацию пользователя. Ведущие белорусские ресурсы безопасность пользователей игнорируют полностью.</p>
]]></content:encoded>
			<wfw:commentRss>http://valera.ws/2011.02.05~ssl-auth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

