<?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>My Reflection</title>
	<atom:link href="http://bulkin.me/feed" rel="self" type="application/rss+xml" />
	<link>http://bulkin.me</link>
	<description>Размышления о....</description>
	<lastBuildDate>Sat, 18 Feb 2012 09:22:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cвязка Selenium + JUnit + Maven в NetBeans IDE</title>
		<link>http://bulkin.me/notes/1680</link>
		<comments>http://bulkin.me/notes/1680#comments</comments>
		<pubDate>Sat, 18 Feb 2012 09:10:49 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Тестирование]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[selenium ide]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1680</guid>
		<description><![CDATA[В этой заметке я расскажу, как создать связку Selenium RC + JUnit (фреймворк для тестирования) + Maven (сборщик проектов) на примере NetBeans IDE. В NetBeans из списка доступных подключаемых модулей (&#171;Сервис&#187; -&#62; &#171;Подключаемые модули&#187;) необходимо выбрать и установить &#171;Selenium Module for Maven&#187;. Создать новый проект &#171;Maven&#187; -&#62; &#171;Приложение Java&#187;. Дождаться загрузки всех файлов для работы [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В этой заметке я расскажу, как создать связку <strong>Selenium RC</strong> + <strong>JUnit</strong> (фреймворк для тестирования) + <strong>Maven</strong> (сборщик проектов) на примере NetBeans IDE.</p>
<ol style="text-align: justify;">
<li>В NetBeans из списка доступных подключаемых модулей (&laquo;Сервис&raquo; -&gt; &laquo;Подключаемые модули&raquo;) необходимо выбрать и установить &laquo;Selenium Module for Maven&raquo;.</li>
<li>Создать новый проект &laquo;Maven&raquo; -&gt; &laquo;Приложение Java&raquo;. Дождаться загрузки всех файлов для работы с Maven. Когда проект будет построен, в папке тестовых зависимостей появится JUnit.</li>
<li>Добавить в проект &laquo;Selenium Test Case for Maven project&raquo; (&laquo;Создать&raquo; -&gt; &laquo;Другое&raquo;, в категории выбрать &laquo;Selenium&raquo;). В папке тестовых зависимостей появится Selenium.</li>
<li>Выделить папку &laquo;Тестовые зависимости&raquo;, вызвать контекстно меню и выбрать &laquo;Загрузить объявленные зависимости&raquo;.</li>
<li>Попытаться построить проект с зависимостями (выделить проект, вызвать контекстно меню и выбрать &laquo;Построить с зависимостями&raquo;). Если появится сообщение ошибке &laquo;error: package org.junit does not exist&raquo;, то переходим к шагу 6, иначе к шагу 7.</li>
<li>Загрузить последнюю версию <a href="https://github.com/KentBeck/junit/downloads" target="_blank">JUnit</a> с официальной страницы проекта. На текущий момент актуальной версией является 4.10. В папке тестовых зависимостей выделить JUnit, вызвать контекстно меню и выбрать &laquo;Установить артефакт вручную&raquo;. Выбрать загруженные JUnit и нажать на кнопку &laquo;Локальная установка&raquo;. После этого ошибка &laquo;error: package org.junit does not exist&raquo; должна пропасть.</li>
<li>Чтобы проводить тесты, необходимо загрузить загрузить последний <a href="http://seleniumhq.org/download/" target="_blank">Selenium RC</a> с официальной страницы проекта. На текущий момент актуальной версией является 2.19.0. После чего нужно запустить загруженный файл: <code>java -jar selenium-server-standalone-2.19.0.jar</code></li>
<li>Убедиться, что все работает &#8211; выделить созданный класс в пункте 3, вызвать контекстно меню и выбрать &laquo;Тестировать файл&raquo;. После чего должен запуститься указанный в конструкторе браузер.</li>
</ol>
<p style="text-align: justify;">
<p>Дальше уже все по своему усмотрению. К примеру, тесты, написанные в Selenium IDE можно перенести на Selenium RC / WebDriver. Для этого в Selenium IDE есть функция &laquo;Формат&raquo;, которая позволяет автоматически конвертировать текущий формат представления теста в выбранный.</p>
<p style="text-align: justify;"><a href="http://bulkin.me/files/2012/02/SeleniumJUnitMaven.png" rel="lightbox[1680]"><img class="aligncenter size-medium wp-image-1683" title="SeleniumJUnitMaven" src="http://bulkin.me/files/2012/02/SeleniumJUnitMaven-300x182.png" alt="" width="300" height="182" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1680/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Про файлы с одинаковым именем и расширением в одной папке</title>
		<link>http://bulkin.me/notes/1675</link>
		<comments>http://bulkin.me/notes/1675#comments</comments>
		<pubDate>Sat, 18 Feb 2012 07:27:09 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[файловая система]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1675</guid>
		<description><![CDATA[Как известно, в ОС Windows не могут существовать два файла с идентичным именем и расширением, тоже самое относится и к папкам. А теперь посмотрим внимательно на скриншот, и скажем, что в нем не так. Нашли? В директории находятся два файла с именем «avatar_1.jpg», при этом имена файлов и расширения идентичны. И ведь не было предпринято [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Как известно, в ОС Windows не могут существовать два файла с идентичным именем и расширением, тоже самое относится и к папкам. А теперь посмотрим внимательно на скриншот, и скажем, что в нем не так.</p>
<p style="text-align: justify;"><a href="http://bulkin.me/files/2012/02/SameName.jpg" rel="lightbox[1675]"><img class="aligncenter size-medium wp-image-1676" title="SameName" src="http://bulkin.me/files/2012/02/SameName-300x115.jpg" alt="" width="300" height="115" /></a></p>
<p style="text-align: justify;">Нашли? В директории находятся два файла с именем «avatar_1.jpg», при этом имена файлов и расширения идентичны. И ведь не было предпринято никаких махинаций по замене английской буквы на русскую, или же добавления еще одного расширения при сокрытии в свойствах папки расширения у файлов.</p>
<p style="text-align: justify;">Как же такое может быть? Ответ несложен: на скриншоте специально не показано название папки,  в которой располагаются файлы. А ведь этой папкой является «User/Pictures» из библиотеки. По сути, библиотека является лишь контейнером для пользовательских папок. У меня, к примеру, в системе создано два пользователя, соответственно, у каждого из них есть своя локальная папка «Pictures». Когда мы заходим в библиотеку, то видим только те файлы, которые принадлежат текущему пользователю. Но в системе может быть еще и папка «Public/Pictures», к которой имеют доступ все пользователи. Вот в эту папку как раз таки и можно поместить два одинаковых файла, один из которых будет числиться в папке «Public/Pictures», другой &#8211; в папке «User/Pictures».</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1675/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Про комнату, в которой я живу</title>
		<link>http://bulkin.me/notes/1660</link>
		<comments>http://bulkin.me/notes/1660#comments</comments>
		<pubDate>Sat, 11 Feb 2012 18:17:42 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Размышления]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1660</guid>
		<description><![CDATA[Я нахожусь в комнате, которая сопровождает меня всю жизнь. Ее создал я сам, это мое творение. В ней есть все то, что мне нужно, ничего лишнего, только самое необходимое. В ней темно, но мои глаза на протяжении уже многих лет смогли приспособиться. Я свободно могу ходить по комнате, не спотыкаясь о находящиеся предметы, могу разглядывать [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Я нахожусь в комнате, которая сопровождает меня всю жизнь. Ее создал я сам, это мое творение. В ней есть все то, что мне нужно, ничего лишнего, только самое необходимое. В ней темно, но мои глаза на протяжении уже многих лет смогли приспособиться. Я свободно могу ходить по комнате, не спотыкаясь о находящиеся предметы, могу разглядывать вещи, могу читать. Темнота мне не мешает, она более уместна здесь, чем где либо.</p>
<p style="text-align: justify;">В моей комнате есть окно, но оно все время закрыто шторами. Солнечный свет часто пытается войти сюда, но все, на что он способен &#8211; это лишь совсем небольшое свечение по периметру зашторенного окна. Я привык к темноте, и совсем не пытаюсь приоткрыть шторы. Я не хочу знать, что находится за окном, не хочу видеть другой мир, отличный от того, что создано в комнате. Моя комната &#8211; это моя жизнь, мой маленький внутренний мир, который доступен только для меня одного. В этой комнате нахожусь только я. Порой кажется, что в комнату хочет кто-то войти. Прислушиваясь к звуку подходящего к двери человека, я отчетливо слышу его шаги. Вот он подходит к двери, останавливается возле нее, чего-то ждет, видимо раздумывая, войти ли ко мне или нет. Но постояв недолго, он уходит, так и не войдя сюда. Я привык к тому, что ко мне никто никогда не придет, и что кроме своей комнаты я никого никогда не увижу. Я живу в своей мире, сером и безлюдном. Но мне здесь хорошо, я свыкся со всем, что меня окружает, я знаю, что мое, родное.</p>
<p style="text-align: justify;">Иногда я все же думаю о переменах, о том, что бы уйти из этой комнаты, но знаю, что сделать это невозможно &#8211; дверь в комнате открывается только снаружи. Возможно когда-то кто-то ее откроет, и мне предоставится возможность выйти от сюда, но прежде, чем сделать это, я тщательно подумаю, что все же для меня лучше &#8211; предсказуемость или безызвестность?</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1660/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Про RetinaPad</title>
		<link>http://bulkin.me/notes/1657</link>
		<comments>http://bulkin.me/notes/1657#comments</comments>
		<pubDate>Sat, 04 Feb 2012 14:01:30 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1657</guid>
		<description><![CDATA[Давно мечтал о чем-то похожем для своего iPad&#8217;а и вот, наконец-то, нашел! RetinaPad позволяет отображать приложения, созданные для iPhone с поддержкой Retina-дисплеев, в высоком разрешении и на экране iPad, без всяких там замыленных графических составляющих и зубчатых шрифтов. RetinaPad устанавливается из Cydia, репозиторий BigBoss и стоит $2,99, а если добавить репозиторий repo.insanelyi.com, то RetinaPad достанется совершенно бесплатно =)]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Давно мечтал о чем-то похожем для своего iPad&#8217;а и вот, наконец-то, нашел! <strong>RetinaPad</strong> позволяет отображать приложения, созданные для iPhone с поддержкой Retina-дисплеев, в высоком разрешении и на экране iPad, без всяких там замыленных графических составляющих и зубчатых шрифтов.</p>
<p style="text-align: justify;">RetinaPad устанавливается из Cydia, репозиторий BigBoss и стоит <strong>$2,99</strong>, а если добавить репозиторий <strong>repo.insanelyi.com</strong>, то RetinaPad достанется совершенно бесплатно =)</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1657/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Декомпиляция приложений *.apk</title>
		<link>http://bulkin.me/notes/1647</link>
		<comments>http://bulkin.me/notes/1647#comments</comments>
		<pubDate>Sat, 04 Feb 2012 08:10:25 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apk]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[декомпиляция]]></category>
		<category><![CDATA[мошенничество]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1647</guid>
		<description><![CDATA[В последнее время стал часто получать на свой мобильный телефон мошеннические SMS и MMS, просящие перейти на сайт, чтобы &#171;просмотреть открытку/сообщение&#187;, &#171;скачать приложение&#187; и т.п. Сегодня решил проверить, что конкретно мне хотят подсунуть. Перейдя по одной из таких ссылок через компьютер, было загружено Android-приложение (*.apk) с именем  «opera_6.5.1». В сети сейчас гуляет много вирусов, маскирующихся под якобы [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В последнее время стал часто получать на свой мобильный телефон мошеннические SMS и MMS, просящие перейти на сайт, чтобы &laquo;просмотреть открытку/сообщение&raquo;, &laquo;скачать приложение&raquo; и т.п. Сегодня решил проверить, что конкретно мне хотят подсунуть. Перейдя по одной из таких ссылок через компьютер, было загружено Android-приложение (*.apk) с именем  «opera_6.5.1<strong>»</strong>. В сети сейчас гуляет много вирусов, маскирующихся под якобы новую версию браузера (в прочем, не самого популярного за рубежом, но очень любимого в СНГ), которую срочно нужно обновить. Доверчивые пользователи, скачавшие такое &laquo;обновление&raquo;, получают на свое мобильное устройство вирус, который отсылает с их телефона смс-сообщения на платные номера (естественно, без ведома хозяина), в результате чего пользовательский счет человека в короткий срок может достичь нулевой отметки.</p>
<p style="text-align: justify;">Где-то на Хабре я уже читал статью, как один человек решил декомпилировать ту самую Оперу, только в формате *.jar, чтобы детально разобраться в коде вируса. Но мне попалось приложение в формате *.apk, поэтому я тоже решил его декомпилировать (исключительно технический интерес!).</p>
<p style="text-align: justify;">Для декомпиляции *.apk-приложения мне понадобились только две составляющие: <a title="dex2jar" href="http://code.google.com/p/dex2jar/" target="_blank">dex2jar</a> (утилита для извлечения классов, которые уже можно декомпилировать) и <a title="Java Decompiler" href="http://java.decompiler.free.fr/" target="_blank">Java Decompiler</a> (то, чем будем декомпилировать). Для тех, кому необходимо получить ресурсы приложения, то нужно воспользоваться еще и <a title="AptTool" href="http://code.google.com/p/android-apktool/" target="_blank">ApkTool</a>.</p>
<p><code># C:\Decompile_apk_app\dex2jar-0.0.9.7\dex2jar C:\Decompile_apk_app\opera_6.5.1.apk</code> &#8211; данная команда позволяет получить файл opera_6.5.1_dex2jar.jar, который с успехом открывается с помощью Java Decompiler.</p>
<p><code># C:\Decompile_apk_app\apktool\apktool d -f C:\Decompile_apk_app\opera_6.5.1.apk C:\Decompile_apk_app\Opera</code> – команда позволяет получить файлы манифестов, ресурсов приложения, и файлы байт-кода в формате *.smali. <a href="http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html" target="_blank">Здесь</a> можно найти список команд, присутствующих в байт-коде.</p>
<p style="text-align: justify;">Вот так не сложно можно получить доступ если не к 100% исходникам приложения, то хотя бы к той части, которую можно осмысленно понять.</p>
<p style="text-align: justify;"><a href="http://bulkin.me/files/2012/02/JavaDecompiler.png" rel="lightbox[1647]"><img class="aligncenter size-medium wp-image-1652" title="JavaDecompiler" src="http://bulkin.me/files/2012/02/JavaDecompiler-300x195.png" alt="" width="300" height="195" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1647/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Изменение размера раздела диска Linux</title>
		<link>http://bulkin.me/notes/1639</link>
		<comments>http://bulkin.me/notes/1639#comments</comments>
		<pubDate>Thu, 02 Feb 2012 09:02:59 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[gparted]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1639</guid>
		<description><![CDATA[У меня на ноутбуке установлено две ОС &#8211; Windows и Ubuntu. В Windows жесткий диск разбит на два раздела: &#171;С&#187; и &#171;D&#187; (формат NTFS). В Ubuntu &#8211; один корневой раздел и один для swap (формат ext4). В последнее время место для корневого раздела стремительно закончилось, оставалось совсем немного сотен мегабайт. В связи с этим встала острая [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">У меня на ноутбуке установлено две ОС &#8211; <strong>Windows</strong> и<strong> Ubuntu</strong>. В Windows жесткий диск разбит на два раздела: &laquo;<strong>С&raquo;</strong> и &laquo;<strong>D&raquo; </strong>(формат NTFS). В Ubuntu &#8211; один корневой раздел и один для swap (формат ext4). В последнее время место для корневого раздела стремительно закончилось, оставалось совсем немного сотен мегабайт. В связи с этим встала острая проблема увеличения размера корневого раздела. Для этого было решено отнять часть ГБ от диска &laquo;<strong>D&raquo;</strong> и прибавить их к разделу Linux.</p>
<p style="text-align: justify;">Для проведения этой процедуры было решено использовать программу <a title="GParted" href="http://gparted.sourceforge.net/" target="_blank">GParted</a>, которая по многочисленным отзывам прекрасно справляется с подобными задачами. Ниже привожу краткие шаги от начало до конца:</p>
<ol style="text-align: justify;">
<li><a href="http://gparted.sourceforge.net/download.php" target="_blank">Загружаем</a> загрузочный ISO-образ из раздела &laquo;GParted Live CD/USB/HD/PXE Bootable Image&raquo;</li>
<li>записываем ISO-образ на какой-нибудь CD/DVD (к примеру, через UltraISO), или на флэшку, если ваш компьютер поддерживает такой тип загрузки.</li>
<li>Загружаем компьютер с помощью записанного загрузочного диска. После копирования необходимых файлов, выбираем нужный язык и указываем, что работать будем через графическую оболочку.</li>
<li>После загрузки графической оболочки автоматически откроется программа <strong>GParted</strong>, которая после сканирования жесткого диска выведет список существующих разделов (/dev/sda2, /dev/sda3 и т.п.)</li>
<li>Выделяем нужный диск (у меня это &laquo;D&raquo;), выбираем пункт &laquo;Resize&raquo;, в открывшемся окне с помощью визуальной полоски дискового пространства указываем, сколько места хотим убрать от диска. Пусть это будет 10 ГБ.</li>
<li> После этого в списке разделов появится новый раздел размером 10 ГБ. Его необходимо отформатировать в формат ext4. Для этого опять же выбираем соответствующий пункт и указываем нужную файловую систему. Жмем кнопку &laquo;Apply&raquo;. Выполнятся задачи из пункта 5 и 6.</li>
<li>Теперь выделяем корневой раздел вашего Linux&#8217;а, выбираем пункт &laquo;Resize&raquo;, в открывшемся окне с помощью визуальной полоски дискового пространства указываем, сколько места хотим добавить. В качестве свободного места будут фигурировать как раз таки наши 10 ГБ. После нажатия на кнопку &laquo;Apply&raquo; появится предупреждающее окно о том, что при изменении размера корневого раздела произойдет изменение файловой системы и, вероятно, ОС не сможет загрузиться. Соглашаемся на это.</li>
<li> После не быстрого процесса изменения размера раздела, перезагружаем компьютер (не забудьте вытащить загрузочный диск), в окне загрузчика выбираем наш Linux и ждем, когда ОС благополучно загрузится.</li>
</ol>
<p style="text-align: justify;">
<p>Да, как ни странно, но лично у меня Ubuntu загрузилась на ура, ни какие изменения в /etc/fstab делать не пришлось. Хотя, все же проблемы после изменения размера раздела могут и возникнуть.</p>
<p style="text-align: justify;"><a href="http://bulkin.me/files/2012/02/GParted.png" rel="lightbox[1639]"><img class="aligncenter size-medium wp-image-1642" title="GParted" src="http://bulkin.me/files/2012/02/GParted-300x202.png" alt="" width="300" height="202" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1639/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Советы по настройке Ubuntu 11.10</title>
		<link>http://bulkin.me/notes/1637</link>
		<comments>http://bulkin.me/notes/1637#comments</comments>
		<pubDate>Thu, 02 Feb 2012 08:23:38 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1637</guid>
		<description><![CDATA[Практические советы по наиболее популярным вопросам, касающихся настройки Ubuntu 11.10.]]></description>
			<content:encoded><![CDATA[<p>Практические <a href="http://ubuntunews.ru/articles/tweak-after-installing-ubuntu-11.10.html" target="_blank">советы</a> по наиболее популярным вопросам, касающихся настройки Ubuntu 11.10.</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1637/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Интерактивные курсы по Git и SVN</title>
		<link>http://bulkin.me/notes/1634</link>
		<comments>http://bulkin.me/notes/1634#comments</comments>
		<pubDate>Tue, 31 Jan 2012 11:30:17 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[Тестирование]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1634</guid>
		<description><![CDATA[Git How To – интерактивный курс по основам Git SVN How To - интерактивный курс по основам SVN]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://githowto.com/" target="_blank">Git How To</a> – интерактивный курс по основам Git</li>
<li><a href="http://svnhowto.com/">SVN How To</a> - интерактивный курс по основам SVN</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1634/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP скрипт для POST запросов</title>
		<link>http://bulkin.me/notes/1626</link>
		<comments>http://bulkin.me/notes/1626#comments</comments>
		<pubDate>Mon, 30 Jan 2012 10:58:46 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Тестирование]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1626</guid>
		<description><![CDATA[Каркас рабочего php-скрипта, который может помочь при тестировании API &#8211; отправляет POST-запросы через curl на сервер. В дальнейшем может быть модифицирован исходя из поставленной задачи. В частности, в примере используется аутентификация пользователя с помощью его логина и пароля путем передачи этих параметров на сервер. /* * Autentification test script */ &#160; $postURL = &#34;http://api.site.com/&#34;; $username [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Каркас рабочего php-скрипта, который может помочь при тестировании API &#8211; отправляет POST-запросы через curl на сервер. В дальнейшем может быть модифицирован исходя из поставленной задачи. В частности, в примере используется аутентификация пользователя с помощью его логина и пароля путем передачи этих параметров на сервер.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
 * Autentification test script
*/</span>
&nbsp;
<span style="color: #000088;">$postURL</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://api.site.com/&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'UserName'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'UserPassword'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$postVars</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&amp;amp;username=<span style="color: #006699; font-weight: bold;">$UserName</span>&amp;amp;password=<span style="color: #006699; font-weight: bold;">$UserPassword</span>&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_URL<span style="color: #339933;">,</span> <span style="color: #000088;">$postURL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_HEADER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_TIMEOUT<span style="color: #339933;">,</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <span style="color: #000088;">$postVars</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">curl_close</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_error</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'('</span><span style="color: #339933;">.</span><span style="color: #990000;">curl_errno</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$curl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">')'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$error</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1626/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Запуск встроенного веб-сервера в PHP и Python</title>
		<link>http://bulkin.me/notes/1622</link>
		<comments>http://bulkin.me/notes/1622#comments</comments>
		<pubDate>Tue, 24 Jan 2012 10:35:12 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Администрирование]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[сервер]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1622</guid>
		<description><![CDATA[Запуск Python веб-сервера: python -m SimpleHTTPServer [port] По умолчанию сервер вешается на порт 8000, но его можно поменять, добавив необходимый номер порта после указания модуля &#171;SimpleHTTPServer&#187;. Запуск PHP веб-сервера (доступно в PHP 5.4): php -S localhost:[port]]]></description>
			<content:encoded><![CDATA[<p><strong>Запуск Python веб-сервера:</strong></p>
<p><code>python -m SimpleHTTPServer [port]</code></p>
<p>По умолчанию сервер вешается на порт 8000, но его можно поменять, добавив необходимый номер порта после указания модуля &laquo;SimpleHTTPServer&raquo;.</p>
<p><strong>Запуск PHP веб-сервера (доступно в PHP 5.4):</strong></p>
<p><code>php -S localhost:[port]</code></p>
<p><a href="http://bulkin.me/files/2012/01/pythonWebServer.png" rel="lightbox[1622]"><img class="aligncenter size-medium wp-image-1623" title="pythonWebServer" src="http://bulkin.me/files/2012/01/pythonWebServer-300x279.png" alt="" width="300" height="279" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1622/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Загадка про &#171;ЭТО&#187;</title>
		<link>http://bulkin.me/notes/1607</link>
		<comments>http://bulkin.me/notes/1607#comments</comments>
		<pubDate>Sun, 22 Jan 2012 08:15:01 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Размышления]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1607</guid>
		<description><![CDATA[За ЭТО воевали, проливая кровь ни в чем неповинных людей. Правители в угоду своих желаний придавали в жертвы свои собственные народы. За ЭТО погибали и страдали многие, некоторые даже совершали акты суицида. Церковь ставила ЭТО одной из главных ценностей, быть может, поэтому из-за ЭТОГО столько и погибало людей. Не многие, кто пытался найти ЭТО, были [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">За ЭТО воевали, проливая кровь ни в чем неповинных людей. Правители в угоду своих желаний придавали в жертвы свои собственные народы. За ЭТО погибали и страдали многие, некоторые даже совершали акты суицида. Церковь ставила ЭТО одной из главных ценностей, быть может, поэтому из-за ЭТОГО столько и погибало людей. Не многие, кто пытался найти ЭТО, были вознаграждены. У большинства либо иссякало стремление к поиску, либо просто пропадала цель найти ЭТО. Некоторые же до конца своих дней блуждали в поисках, не оставляя свою надежду. Только научный мир в 20 веке смог определить, что ЭТО является порождением химии. Теперь, зная об ЭТОМ гораздо больше с научной точки зрения, люди все равно не потеряли интерес к поиску. Они продолжаются до сих пор&#8230;</p>
<p style="text-align: justify;">А теперь угадайте, что ЭТО такое?</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1607/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Съемка 3D-фото на фотоаппараты Sony моделей DSC-H/T/W</title>
		<link>http://bulkin.me/notes/1603</link>
		<comments>http://bulkin.me/notes/1603#comments</comments>
		<pubDate>Sat, 21 Jan 2012 13:11:08 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[nvidia]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[фотоаппарат]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1603</guid>
		<description><![CDATA[Хотите снимать 3D-фотографии, но у вас нет соответствующей камеры? А вы уверены, что снимать в формате 3D можно только с помощью устройств, оснащенных двумя объективами? Я вот тоже так думал, пока не узнал, что мой фотоаппарат Sony DSC-HX9V вполне себе может снимать в стереоскопическом формате благодаря последовательной съемки двух кадров, и их дальнейшего сдвига друг относительно друга. В [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Хотите снимать 3D-фотографии, но у вас нет соответствующей камеры? А вы уверены, что снимать в формате 3D можно только с помощью устройств, оснащенных двумя объективами? Я вот тоже так думал, пока не узнал, что мой фотоаппарат <strong><a href="http://bulkin.me/notes/1216">Sony DSC-HX9V</a></strong> вполне себе может снимать в стереоскопическом формате благодаря последовательной съемки двух кадров, и их дальнейшего сдвига друг относительно друга. В итоге и получается всем известный стереоскопический эффект.</p>
<p style="text-align: justify;">Отснятые таким образом фотографии сохраняются в формате <strong>*.MPO</strong>, которые можно просматривать на компьютере. Но тут один нюанс – для просмотра 3D-изображений (в прочем, как и видео), необходимо иметь монитор с поддержкой 3D (для этого они должны иметь частоту 120 Гц), мощную видеокарту, и набор <a href="http://www.nvidia.ru/object/3d-vision-main-ru.html" target="_blank">nVidia 3D Vision</a> (если у вас видеокарта от nVidia). А можно сразу купить комплект &laquo;монитор + 3D очки&raquo;, к примеру, <strong>Acer GN245HQ</strong>.</p>
<p style="text-align: justify;">Если у вас один из этих фотоаппаратов Sony, то знайте, что они умеют снимать в 3D:</p>
<ul>
<li>DSC-TX9</li>
<li><span style="text-align: justify;">DSC-TX10</span></li>
<li><span style="text-align: justify;">DSC-TX55</span></li>
<li><span style="text-align: justify;">DSC-TX100V</span></li>
<li><span style="text-align: justify;">DSC-HX9V</span></li>
<li><span style="text-align: justify;">DSC-HX7V</span></li>
<li><span style="text-align: justify;">DSC-WX5</span></li>
<li><span style="text-align: justify;">DSC-WX7</span></li>
<li><span style="text-align: justify;">DSC-WX10</span></li>
<li><span style="text-align: justify;">DSC-WX30</span></li>
<li><span style="text-align: justify;">DSC-HX100V</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1603/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Один из способов создания псевдо-3D</title>
		<link>http://bulkin.me/notes/1599</link>
		<comments>http://bulkin.me/notes/1599#comments</comments>
		<pubDate>Tue, 17 Jan 2012 09:50:12 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[3d]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1599</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object width="480" height="390" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZSrav47IziI?fs=1&amp;hl=ru_RU&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed width="480" height="390" type="application/x-shockwave-flash" src="http://www.youtube.com/v/ZSrav47IziI?fs=1&amp;hl=ru_RU&amp;rel=0" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1599/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://bulkin.me/notes/1592</link>
		<comments>http://bulkin.me/notes/1592#comments</comments>
		<pubDate>Sun, 15 Jan 2012 12:47:59 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Размышления]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1592</guid>
		<description><![CDATA[Необходимо все время совершенствоваться и не забывать, что незаменимых все же не бывает. В любой момент на твое место может прийти кто-то другой. Поэтому категорически нельзя другим давать хоть малейший шанс усомниться в тебе. Необходимо быть лушим, быть на шаг впереди. В каменных джунглях также, как и в природе, – выживает только сильнейший.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Необходимо все время совершенствоваться и не забывать, что незаменимых все же не бывает. В любой момент на твое место может прийти кто-то другой. Поэтому категорически нельзя другим давать хоть малейший шанс усомниться в тебе. Необходимо быть лушим, быть на шаг впереди. В каменных джунглях также, как и в природе, – выживает только сильнейший.</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1592/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WikiSky &#8211; интерактивная карта звёздного неба</title>
		<link>http://bulkin.me/notes/1584</link>
		<comments>http://bulkin.me/notes/1584#comments</comments>
		<pubDate>Sun, 15 Jan 2012 10:28:58 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[космос]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1584</guid>
		<description><![CDATA[В сеть есть прекрасный сайт для всех тех, кому небезразличен космос, о котором, как известно, можно мыслить бесконечно. WikiSky &#8211; проект, запущенный в 2006 году, главной частью которого является интерактивная звездная карта, на которой можно находить интересующие астрономические объекты, при наведении на которых появляется всплывающая информация об имени объекта, созвездии, расстояния и т.п. Если щелкнуть [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В сеть есть прекрасный <a href="http://wikisky.org/" target="_blank">сайт</a> для всех тех, кому небезразличен космос, о котором, как известно, можно мыслить бесконечно. <strong>WikiSky</strong> &#8211; проект, запущенный в 2006 году, главной частью которого является интерактивная звездная карта, на которой можно находить интересующие астрономические объекты, при наведении на которых появляется всплывающая информация об имени объекта, созвездии, расстояния и т.п. Если щелкнуть по объекту, то открывается страница с подробным описанием о нем.</p>
<p style="text-align: justify;">На сайте также представлено большое количество астрономических фотографий, которые явно придутся по душе всем любителям космоса.</p>
<p><a href="http://bulkin.me/files/2012/01/wikisky.jpg" rel="lightbox[1584]"><img class="aligncenter size-medium wp-image-1587" title="wikisky" src="http://bulkin.me/files/2012/01/wikisky-300x300.jpg" alt="" width="300" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1584/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Рекомендации по оформлению UI</title>
		<link>http://bulkin.me/notes/1579</link>
		<comments>http://bulkin.me/notes/1579#comments</comments>
		<pubDate>Fri, 13 Jan 2012 10:07:58 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1579</guid>
		<description><![CDATA[Официальные рекомендации по оформлению пользовательских интерфейсов: - Windows (Microsoft) - Windows Phone (Microsoft) - MasOS (Apple) - iOS (Apple) - Android (Google)]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Официальные рекомендации по оформлению пользовательских интерфейсов:</p>
<p style="text-align: justify;">- <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa511440.aspx" target="_blank">Windows</a> (Microsoft)<br />
- <a href="http://msdn.microsoft.com/en-us/library/hh202915(v=VS.92).aspx" target="_blank">Windows Phone</a> (Microsoft)<br />
- <a href="http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Controls/Controls.html#//apple_ref/doc/uid/TP30000359-TP6" target="_blank">MasOS</a> (Apple)<br />
- <a href="http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html" target="_blank">iOS</a> (Apple)<br />
- <a href="http://developer.android.com/design/building-blocks/grid-lists.html" target="_blank">Android</a> (Google)</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1579/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>С башогра про тестирование</title>
		<link>http://bulkin.me/notes/1576</link>
		<comments>http://bulkin.me/notes/1576#comments</comments>
		<pubDate>Wed, 11 Jan 2012 11:41:13 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Тестирование]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1576</guid>
		<description><![CDATA[Суровые российские монтажники получили задание от начальника установить лампу освещения на входе в здание с автоматом выключения. Есть такие, вырубающие ток в светлое время суток. Собрали, подключили, а так как на дворе светлый день, то проверка прошла на ура. Закрыли датчик шапкой &#8211; темно. Лампа включается. Сняли шапку с датчика &#8211; светло. Лампа выключается. И [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Суровые российские монтажники получили задание от начальника установить лампу освещения на входе в здание с автоматом выключения. Есть такие, вырубающие ток в светлое время суток. Собрали, подключили, а так как на дворе светлый день, то проверка прошла на ура. Закрыли датчик шапкой &#8211; темно. Лампа включается. Сняли шапку с датчика &#8211; светло. Лампа выключается. И с чувством выполненного долга ушли домой.</p>
<p style="text-align: justify;">Самый цирк начался поздно вечером, потому что датчик монтажники закрепили прямо над лампой. Всю ночь у дежурного была дискотека: стемнело &#8211; датчик лампу зажег, лампа зажглась и стало светло, а стало светло &#8211; датчик лампу гасит, ой опять темно &#8211; датчик лампу зажигает &#8230;. и так от заката до рассвета.</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1576/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отличие F5 от CTRL+F5</title>
		<link>http://bulkin.me/notes/1574</link>
		<comments>http://bulkin.me/notes/1574#comments</comments>
		<pubDate>Wed, 11 Jan 2012 09:06:16 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[браузеры]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1574</guid>
		<description><![CDATA[Тем, кто до сих пор не ведует, чем отличается комбинация CTRL+F5 от простого F5 в браузере: F5 &#8211; обновляет страницу, если время ее создания отличается от времени создания ее варианта. CTRL+F5 &#8211; обновляет страницу, даже если время ее создания совпадает с временем создания ее варианта.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Тем, кто до сих пор не ведует, чем отличается комбинация CTRL+F5 от простого F5 в браузере:</p>
<p style="text-align: justify;"><strong>F5</strong> &#8211; обновляет страницу, если время ее создания отличается от времени создания ее варианта.<br />
<strong>CTRL+F5</strong> &#8211; обновляет страницу, даже если время ее создания совпадает с временем создания ее варианта.</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1574/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>strlen() и UTF-8</title>
		<link>http://bulkin.me/notes/1572</link>
		<comments>http://bulkin.me/notes/1572#comments</comments>
		<pubDate>Mon, 09 Jan 2012 10:24:43 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[кодировка]]></category>
		<category><![CDATA[функция]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1572</guid>
		<description><![CDATA[Долго искал причину появления знака вопроса в выводимых символах у себя на сайте. Оказалось, что для вывода в PHP-скрипте используется функция substr(), которая работает с однобайтными кодировками, а ведь данные у меня хранятся в UTF-8, где символ занимает два байта &#8211; вот поэтому-то некоторые символы &#171;режутся&#187; посередине и получаются такие знаки. Решение: вместо substr() использовать функцию mb_substr().]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Долго искал причину появления знака вопроса в выводимых символах у себя на сайте. Оказалось, что для вывода в PHP-скрипте используется функция <strong>substr()</strong>, которая работает с однобайтными кодировками, а ведь данные у меня хранятся в UTF-8, где символ занимает два байта &#8211; вот поэтому-то некоторые символы &laquo;режутся&raquo; посередине и получаются такие знаки.</p>
<p style="text-align: justify;"><strong>Решение:</strong> вместо substr() использовать функцию <strong>mb_substr()</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1572/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Плагин User Agent Switcher для Firefox</title>
		<link>http://bulkin.me/notes/1563</link>
		<comments>http://bulkin.me/notes/1563#comments</comments>
		<pubDate>Sun, 08 Jan 2012 10:29:08 +0000</pubDate>
		<dc:creator>Alexander</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[Тестирование]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[браузеры]]></category>

		<guid isPermaLink="false">http://bulkin.me/?p=1563</guid>
		<description><![CDATA[Существует отличный плагин для браузера Firefox, который позволяет эмулировать различные user-agent&#8217;ы браузеров, будь то Internet Explorer, Opera, Safari и т.п. Первоначально в плагине имеется совсем небольшая поддержка  user-agent&#8217;ов, но это не беда. Достаточно импортировать вот этот xml-файл, который содержит в себе огромное количество user-agent&#8217;ов, удобно сгруппированных по категориям. Так, к примеру, на скриншоте ниже, я выбрал [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Существует отличный плагин для браузера Firefox, который позволяет эмулировать различные user-agent&#8217;ы браузеров, будь то Internet Explorer, Opera, Safari и т.п. Первоначально в плагине имеется совсем небольшая поддержка  user-agent&#8217;ов, но это не беда. Достаточно импортировать вот <a href="/files/useragentswitcher.xml">этот</a> xml-файл, который содержит в себе огромное количество user-agent&#8217;ов, удобно сгруппированных по категориям.</p>
<p style="text-align: justify;">Так, к примеру, на скриншоте ниже, я выбрал в качестве user-agent&#8217;а iPad, и сайт Google автоматически переключился на версию для планшетных ПК.</p>
<p style="text-align: justify;">Плагин можно загрузить через менеджер расширений в браузере Firefox, набрав в поисковой строке расширений <strong>«</strong><strong>User Agent Switcher</strong><strong>»</strong>.</p>
<p style="text-align: justify;"><a href="http://bulkin.me/files/2012/01/useragentswitcher.png" rel="lightbox[1563]"><img class="aligncenter size-medium wp-image-1565" title="User Agent Switcher" src="http://bulkin.me/files/2012/01/useragentswitcher-300x212.png" alt="" width="300" height="212" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bulkin.me/notes/1563/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

