<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Студия Программист</title>
		<link>http://stprg.ru/</link>
		<description>Блог</description>
		<lastBuildDate>Fri, 15 Sep 2017 11:23:51 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://www.stprg.ru/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Про SVG в favicon</title>
			<description>&lt;p&gt;Если говорить коротко, то пока рано. Несмотря на то, что формат .SVG был бы очень удобен именно в иконках, его использование в этой области пока не форсируется.&lt;/p&gt;</description>
			<content:encoded>&lt;p&gt;Поиски ответа на вопрос про использование .SVG в качестве favicon привели нас к замечательному &lt;a charset=&quot;utf-8&quot; dir=&quot;ltr&quot; href=&quot;https://habrahabr.ru/post/330584/&quot; hreflang=&quot;ru&quot; target=&quot;_blank&quot; title=&quot;Открыть статью «Favicon сегодня: форматы, поддержка, автоматизация» в новой вкладке&quot; type=&quot;text/html&quot;&gt;обзору Ольги Болотовой на Хабрахабре&lt;/a&gt;. Дублировать информацию не видим&amp;nbsp;смысла. Есть ещё страницы на Stack Overflow, например,&amp;nbsp;&lt;a charset=&quot;utf-8&quot; dir=&quot;ltr&quot; href=&quot;https://stackoverflow.com/questions/34446050/svg-favicon-not-working&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Открыть статью «SVG Favicon Not Working» в новой вкладке&quot; type=&quot;text/html&quot;&gt;SVG Favicon Not Working&lt;/a&gt; или&amp;nbsp;&lt;a charset=&quot;utf-8&quot; dir=&quot;ltr&quot; href=&quot;https://stackoverflow.com/questions/30217684/is-there-a-way-to-render-svg-favicons-in-unsupported-browsers/34440779#34440779&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Открыть статью «Is there a way to render SVG favicons in unsupported browsers?» в новой вкладке&quot; type=&quot;text/html&quot;&gt;Is there a way to render SVG favicons in unsupported browsers?&lt;/a&gt;. Ещё есть &lt;a charset=&quot;utf-8&quot; dir=&quot;ltr&quot; href=&quot;http://caniuse.com/#feat=link-icon-svg&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; type=&quot;text/html&quot;&gt;страница CanIUse про SVG favicon&lt;/a&gt;. Из всего этого становится предельно ясно, что использовать единственный файл .SVG в качестве иконки невозможно. Каждый браузер&amp;nbsp;использует свою особенную технологию, поэтому нам приходится укладывать в корень сайта больше десятка файлов.&lt;/p&gt;$CUT$

&lt;p&gt;Для того, чтобы быстро и без проблем подготовить весь пакет изображений и сопроводительных файлов, используем &lt;a charset=&quot;utf-8&quot; dir=&quot;ltr&quot; href=&quot;https://realfavicongenerator.net/&quot; hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Открыть страницу сервиса «Favicon Generator. For real.» в соседней вкладке&quot; type=&quot;text/html&quot;&gt;RealFaviconGenerator&lt;/a&gt;. А вот, кстати, для него потребуется исходный файл иконки, который лучше нарисовать в .SVG&amp;nbsp;&amp;mdash; для удобства последующего масштабирования.&lt;/p&gt;

&lt;p class=&quot;sml&quot;&gt;© Photo: w3devcampus.com&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/pro_svg_v_favicon/2017-09-15-37</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/pro_svg_v_favicon/2017-09-15-37</guid>
			<pubDate>Fri, 15 Sep 2017 11:23:51 GMT</pubDate>
		</item>
		<item>
			<title>Chromium &amp; flash-player</title>
			<description>Рецепт, как подключить flash-плеер к браузеру Chromium в операционной системе Puppy Linux</description>
			<content:encoded>&lt;p&gt;В&amp;nbsp;Puppy Linux (tahrpup&amp;nbsp;— 6.0.2×32 bit) браузер Chromium
 устанавливается из&amp;nbsp;репозитория (его нужно обновить). На&amp;nbsp;момент
 написания заметки устанавливалась версия 53.0 при актуальной
 стабильной&amp;nbsp;— 56.0.&lt;/p&gt;
 &lt;p&gt;Как известно, в&amp;nbsp;отличие от&amp;nbsp;Google Chrome, Chromium
 устанавливается без &lt;span class=&quot;nobr&quot;&gt;flash-плеера&lt;/span&gt;.
 К&amp;nbsp;сожалению, бо́льшая часть информации в&amp;nbsp;Интернете касается
 установки flash для дистрибутивов Ubuntu. Попытаемся исправить этот
 недостаток и&amp;nbsp;покажем, &lt;strong&gt;как установить &lt;span class=&quot;nobr&quot;&gt;flash-player&lt;/span&gt;
 для Linux из&amp;nbsp;архива.tar.gz вручную&lt;/strong&gt;.&lt;/p&gt;
 &lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;Во-первых&lt;/span&gt;, откуда брать дистрибутив. Пакет для
 Ubuntu скачал&amp;nbsp;бы коммерческий Google Chrome, извлёк из&amp;nbsp;него
 свежайшую библиотеку &lt;code&gt;libpepflashplayer.so&lt;/code&gt; и&amp;nbsp;установил
 её, не&amp;nbsp;используя, естественно, всего остального. Для нас это слишком
 сложно. Мы&amp;nbsp;воспользуемся известной &lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot;
 target=&quot;_blank&quot; title=&quot;Выбрать и загрузить flash-player в соседней вкладке&quot;
 href=&quot;http://u.to/adobe/OBd6Ag&quot;&gt;ссылкой на&amp;nbsp;выбор и&amp;nbsp;загрузку
 плеера на&amp;nbsp;сайте Adobe&lt;/a&gt;.&lt;/p&gt;
 &lt;div style=&quot;display: table;&quot;&gt;
 &lt;div style=&quot;float: left; margin: 0pt 0.5em 0.1em 0pt;&quot; class=&quot;image-div&quot;&gt;&lt;!--IMG2--&gt;&lt;a href=&quot;https://www.stprg.ru/_bl/0/51307799.jpg&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img title=&quot;Скриншот загрузки flash-плеера&quot; alt=&quot;Скриншот загрузки flash-плеера&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://www.stprg.ru/_bl/0/s51307799.jpg&quot; align=&quot;&quot; /&gt;&lt;/a&gt;&lt;!--IMG2--&gt;
 &lt;/div&gt;
 &lt;p&gt;Обычно скрипты на&amp;nbsp;странице загрузки правильно подбирают
 необходимую версию программы. Если в&amp;nbsp;этом появились сомнения,
 следует выбрать ссылку «Нужен проигрыватель Flash Player для другого
 компьютера?» и&amp;nbsp;на&amp;nbsp;новой странице выбрать вариант операционной
 системы Linux и&amp;nbsp;&lt;span class=&quot;nobr&quot;&gt;PPAPI-версию&lt;/span&gt; библиотеки
 (для Puppy). Далее нужно разрешить закачку файла и&amp;nbsp;развернуть
 полученный архив в&amp;nbsp;&lt;span class=&quot;nobr&quot;&gt;какую-нибудь&lt;/span&gt; временную
 директорию.&lt;/p&gt;
 &lt;/div&gt;
 &lt;div style=&quot;float: left; margin: 0pt 0.5em 0.1em 0pt;&quot; class=&quot;image-div&quot;&gt;&lt;!--IMG3--&gt;&lt;a href=&quot;https://www.stprg.ru/_bl/0/49756749.jpg&quot; class=&quot;ulightbox&quot; target=&quot;_blank&quot; title=&quot;Нажмите для просмотра в полном размере...&quot;&gt;&lt;img title=&quot;Выбор варианта загрузки&quot; alt=&quot;Выбор варианта загрузки&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://www.stprg.ru/_bl/0/s49756749.jpg&quot; align=&quot;&quot; /&gt;&lt;/a&gt;&lt;!--IMG3--&gt;
 &lt;/div&gt;
 &lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;Во-вторых&lt;/span&gt;, куда устанавливать. Компания Adobe
 рекомендует сохранить все файлы и&amp;nbsp;папки из&amp;nbsp;развёрнутого архива
 в&amp;nbsp;директорию по&amp;nbsp;адресу &lt;code&gt;/usr/lib/&lt;span class=&quot;nobr&quot;&gt;adobe-flashplugin&lt;/span&gt;/&lt;/code&gt;.
 В&amp;nbsp;принципе, всё равно, куда это устанавливать. В&amp;nbsp;дальнейшем
 мы&amp;nbsp;пропишем адрес, где находится &lt;code&gt;libpepflashplayer.so&lt;/code&gt;,
 в&amp;nbsp;настройки Chromium, &lt;span class=&quot;nobr&quot;&gt;т. е.&lt;/span&gt; адрес может
 быть любым. Однако вышеназванная директория является местом
 по&amp;nbsp;умолчанию, где различные программы и&amp;nbsp;службы будут искать
 продукты Adobe. Поэтому есть резон выполнить советы команды разработчиков
 и&amp;nbsp;поместить файлы именно в&amp;nbsp;этот раздел (а&amp;nbsp;если его нет,
 то&amp;nbsp;создать).&lt;/p&gt;
 &lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;В-третьих&lt;/span&gt;, как пользоваться. В&amp;nbsp;директории
 &lt;code&gt;/etc/&lt;span class=&quot;nobr&quot;&gt;chromium-browser&lt;/span&gt;&lt;/code&gt; есть файл &lt;code&gt;default&lt;/code&gt;
 (без расширения). Из&amp;nbsp;значимых строк он&amp;nbsp;содержит одну:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;CHROMIUM_FLAGS=&quot;&quot;&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;Мы&amp;nbsp;заменим её на&amp;nbsp;следующую:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;CHROMIUM_FLAGS=&quot;$CHROMIUM_FLAGS -&lt;span class=&quot;nobr&quot;&gt;ppapi-flash-path&lt;/span&gt;=/usr/lib/&lt;span
 class=&quot;nobr&quot;&gt;adobe-flashplugin&lt;/span&gt;/libpepflashplayer.so -&lt;span class=&quot;nobr&quot;&gt;ppapi-flash-version&lt;/span&gt;=&quot;&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;После чего все изменения в&amp;nbsp;файле следует сохранить,
 а&amp;nbsp;браузер&amp;nbsp;— перезапустить. Готово:&lt;/p&gt;
 
 &lt;div style=&quot;display: table;&quot; class=&quot;image-div&quot;&gt;&lt;!--IMG4--&gt;&lt;img title=&quot;Скриншот страницы плагинов браузера Chromium&quot; alt=&quot;Скриншот страницы плагинов браузера Chromium&quot; style=&quot;margin:0;padding:0;border:0;&quot; src=&quot;https://www.stprg.ru/_bl/0/91125040.png&quot; align=&quot;&quot; /&gt;&lt;!--IMG4--&gt;&lt;/div&gt;
 &lt;p&gt;Галочку в&amp;nbsp;«Always allowed to&amp;nbsp;run» проставляем самостоятельно.&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/chromium_flash_player/2017-04-07-36</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/chromium_flash_player/2017-04-07-36</guid>
			<pubDate>Fri, 07 Apr 2017 11:57:05 GMT</pubDate>
		</item>
		<item>
			<title>Символы в Geany</title>
			<description>Для того, чтобы напечатать в Geany какие-нибудь символы, которых нет на клавиатуре, следует использовать ввод символов Юникода</description>
			<content:encoded>&lt;p&gt;Для того, чтобы напечатать в&amp;nbsp;Geany &lt;span class=&quot;nobr&quot;&gt;какие-нибудь&lt;/span&gt;
 символы, которых нет на&amp;nbsp;клавиатуре, следует использовать ввод
 символов Юникода. &lt;/p&gt;
 &lt;p&gt; Для этого надо зажать клавиши Ctrl и&amp;nbsp;Shift, а&amp;nbsp;затем ввести
 последовательность u####, где вместо #### следует ввести &lt;span class=&quot;nobr&quot;&gt;Юникод-номер&lt;/span&gt;
 необходимого элемента. После этого, не&amp;nbsp;отпуская клавиш Ctrl
 и&amp;nbsp;Shift, надо нажать клавишу Enter.​​ &lt;/p&gt;
 &lt;p&gt; Например, для того, чтобы ввести угловые кавычки « или »
 следует ввести U00AB для левой и&amp;nbsp;U00BB для правой. &lt;/p&gt;
 &lt;p&gt; Следует помнить, что &lt;strong&gt;ввод последовательности необходимо
 производить при включённой латинской раскладке клавиатуры&lt;/strong&gt;. &lt;/p&gt;
 &lt;p&gt; Кодировку удобно искать на&amp;nbsp;&lt;a type=&quot;text/html&quot; hreflang=&quot;ru&quot; target=&quot;_blank&quot;
 title=&quot;Открыть сайт символов Юникода в соседней вкладке&quot; href=&quot;http://unicode-table.com/ru/&quot;&gt;специализированном
 сайте&lt;/a&gt;.&lt;/p&gt;
 &lt;p class=&quot;sml&quot;&gt;© Image: wikimedia.org &lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/simvoly_v_geany/2016-02-26-35</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/simvoly_v_geany/2016-02-26-35</guid>
			<pubDate>Fri, 26 Feb 2016 07:00:43 GMT</pubDate>
		</item>
		<item>
			<title>Количество страниц в категориях</title>
			<description>В некоторых разделах сайтов на платформе uCoz сбоит вывод номеров страниц. Предлагаем вариант исправления</description>
			<content:encoded>&lt;p&gt;В&amp;nbsp;некоторых разделах сайтов на&amp;nbsp;платформе uCoz сбоит вывод
 номеров страниц. В&amp;nbsp;общем случае код такой: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;&lt;?if($PAGE_SELECTOR$)?&amp;gt;&lt;!-&lt;s3015&amp;gt;-&amp;gt;Страницы&lt;!-&lt;/s&amp;gt;-&amp;gt;:
 $PAGE_SELECTOR$&lt;?endif?&amp;gt; &lt;/code&gt;&lt;/p&gt;
 &lt;p&gt; Почистим его от&amp;nbsp;служебных пометок uCoz’а (на&amp;nbsp;рабочем сайте
 этого делать не&amp;nbsp;надо): &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;&lt;?if($PAGE_SELECTOR$)?&amp;gt;Страницы:
 $PAGE_SELECTOR$&lt;?endif?&amp;gt; &lt;/code&gt;&lt;/p&gt;
 &lt;p&gt; Итак, если переменная &lt;code&gt;$PAGE_SELECTOR$&lt;/code&gt; &lt;span class=&quot;nobr&quot;&gt;что-нибудь&lt;/span&gt;
 выдаёт, то&amp;nbsp;будет показан результат выдачи, а&amp;nbsp;если ничего
 не&amp;nbsp;выдает, то&amp;nbsp;не&amp;nbsp;будет показано даже слово «Страницы:». &lt;/p&gt;
 &lt;p&gt; Всё&amp;nbsp;бы хорошо, но&amp;nbsp;на&amp;nbsp;самом деле код работает не&amp;nbsp;так.
 Например, на&amp;nbsp;странице &lt;span class=&quot;nobr&quot;&gt;какой-нибудь&lt;/span&gt;
 категории из&amp;nbsp;блока статей: &lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt; Если в&amp;nbsp;категории нет ни&amp;nbsp;одной статьи,
 то&amp;nbsp;на&amp;nbsp;странице не&amp;nbsp;показывается ничего&amp;nbsp;—
 ни&amp;nbsp;номер, ни&amp;nbsp;слово «Страницы:&quot; (так и&amp;nbsp;должно быть);&lt;/li&gt;
 &lt;li&gt;Если в&amp;nbsp;категории статей меньше, чем предел размещения
 их&amp;nbsp;на&amp;nbsp;одной странице (по&amp;nbsp;умолчанию обычно 10), то
 появляется слово «Страницы:», но&amp;nbsp;чисел никаких нет;&lt;/li&gt;
 &lt;li&gt;Если статей больше предела размещения на&amp;nbsp;одной странице
 категории, то&amp;nbsp;код выдаёт нормальный результат: «Страницы:&quot; +
 переключатель. &lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt; Желательно привести код к рабочим результатам. &lt;/p&gt;
 &lt;p&gt; Если страница списка статей в&amp;nbsp;категории одна, должен выводиться
 текст: «Страницы: 1» (напоминаем, раздел статей мы&amp;nbsp;взяли для примера,
 то&amp;nbsp;же можно увидеть, например, в&amp;nbsp;разделе файлов или ссылок).
 Делаем так: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;Страницы:
 &lt;?if($PAGE_SELECTOR$)?&amp;gt;$PAGE_SELECTOR$&lt;?else?&amp;gt;1&lt;?endif?&amp;gt;
 &lt;/code&gt;&lt;/p&gt;
 &lt;p&gt; Оказывается, это работает только тогда, когда в&amp;nbsp;категории нет
 ни&amp;nbsp;одной статьи. Иначе переменная &lt;code&gt;$PAGE_SELECTOR$&lt;/code&gt;
 перестаёт быть пустой и&amp;nbsp;выдаёт: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;&lt;span class=«pagesBlockuz1»&amp;gt;&lt;/span&amp;gt;&lt;/code&gt; &lt;/p&gt;
 &lt;p&gt; Для того, чтобы обработать эту ситуацию, нужно не&amp;nbsp;просто проверять
 существование значения, а&amp;nbsp;анализировать его. Если между тегами &lt;code&gt;&lt;span&amp;gt;&lt;/code&gt;
 есть &lt;span class=&quot;nobr&quot;&gt;что-нибудь&lt;/span&gt;, то&amp;nbsp;надо это &lt;span class=&quot;nobr&quot;&gt;«что-нибудь»&lt;/span&gt;
 выводить. А&amp;nbsp;если нет ничего, то&amp;nbsp;надо выводить цифру 1.
 В&amp;nbsp;применении к&amp;nbsp;нашему случаю, &lt;em&gt;если после первой закрывающей
 угловой скобки сразу&amp;nbsp;же идёт открывающая, то&amp;nbsp;надо выводить
 цифру&lt;/em&gt;. &lt;/p&gt;
 &lt;p&gt; Где находится первая закрывающая угловая скобка, нам ответит
 функция &lt;code&gt;strpos(S&lt;sup&gt;1&lt;/sup&gt;,S&lt;sup&gt;2&lt;/sup&gt;)&lt;/code&gt;. Здесь S&lt;sup&gt;1&lt;/sup&gt;&amp;nbsp;—
 строка, в&amp;nbsp;которой ищем, а&amp;nbsp;S&lt;sup&gt;2&lt;/sup&gt;&amp;nbsp;— строка, которую
 ищем. У&amp;nbsp;нас будет: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;strpos($PAGE_SELECTOR$,&apos;&amp;gt;&apos;) &lt;/code&gt;&lt;/p&gt;
 &lt;p&gt; Но&amp;nbsp;нам нужна собственно и&amp;nbsp;не&amp;nbsp;она, а&amp;nbsp;следующий
 за&amp;nbsp;ней символ строки. Для этого используем функцию &lt;code&gt;substr(S,N&lt;sup&gt;1&lt;/sup&gt;,N&lt;sup&gt;2&lt;/sup&gt;)&lt;/code&gt;.
 Здесь S&amp;nbsp;— строка, которую разрезаем (у&amp;nbsp;нас &lt;code&gt;$PAGE_SELECTOR$&lt;/code&gt;);
 N&lt;sup&gt;1&lt;/sup&gt;&amp;nbsp;— число, которое указывает с&amp;nbsp;какого символа строку
 S&amp;nbsp;надо разрезать (у&amp;nbsp;нас это будет &lt;code&gt;strpos($PAGE_SELECTOR$,&apos;&amp;gt;&apos;)
 + 1&lt;/code&gt;, нам нужен следующий за&amp;nbsp;закрывающей скобкой символ); N&lt;sup&gt;2&lt;/sup&gt;&amp;nbsp;—
 длина строки, которую хотим получить (в&amp;nbsp;нашем случае 1&amp;nbsp;— нам
 нужно проверить только следующий за&amp;nbsp;закрывающей скобкой символ).
 Проще говоря, мы&amp;nbsp;вырезаем из&amp;nbsp;строки, которую выдаёт переменная &lt;code&gt;$PAGE_SELECTOR$&lt;/code&gt;
 символ, который следует за&amp;nbsp;первой&amp;nbsp;же закрывающей угловой
 скобкой, и&amp;nbsp;сравниваем его с&amp;nbsp;символом «&lt;». Если есть
 совпадение, то&amp;nbsp;выводим цифру 1. В&amp;nbsp;противном случае&amp;nbsp;— всё
 содержимое переменной &lt;code&gt;$PAGE_SELECTOR$&lt;/code&gt;. Ниже добавка
 в&amp;nbsp;код сравнения и&amp;nbsp;полностью вся строка условного оператора: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;substr($PAGE_SELECTOR$,strpos($PAGE_SELECTOR$,&apos;&amp;gt;&apos;)+1,1) !==
 &apos;&lt;&apos; &lt;/code&gt;&lt;/p&gt;
 &lt;p&gt; &lt;code&gt;&lt;?if($PAGE_SELECTOR$ &amp;amp;&amp;amp;
 substr($PAGE_SELECTOR$,strpos($PAGE_SELECTOR$,&apos;&amp;gt;&apos;)+1,1) !==
 &apos;&lt;&apos;)?&amp;gt;$PAGE_SELECTOR$&lt;?else?&amp;gt;1&lt;?endif?&amp;gt;&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;Это работает, но&amp;nbsp;можно упростить код. Вместо того, чтобы резать
 строки и&amp;nbsp;анализировать их, в&amp;nbsp;нашем случае можно просто искать
 строку «&amp;gt;&lt;». Если она есть, то&amp;nbsp;выводим единицу: &lt;/p&gt;
 &lt;p&gt; &lt;code&gt;&lt;?if($PAGE_SELECTOR$ &amp;amp;&amp;amp; strpos($PAGE_SELECTOR$,&apos;&lt;span
 style=&quot;color: red;&quot;&gt;&amp;gt;&lt;&lt;/span&gt;&apos;) &lt;
 0)?&amp;gt;$PAGE_SELECTOR$&lt;?else?&amp;gt;1&lt;?endif?&amp;gt;&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;Это тоже работает. &lt;/p&gt;
 &lt;p class=&quot;sml&quot;&gt;&amp;copy; Photo: Toshiyuki IMAI aka matsuyuki via flickr.com&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/kolichestvo_stranic_v_kategorijakh/2016-02-25-34</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/kolichestvo_stranic_v_kategorijakh/2016-02-25-34</guid>
			<pubDate>Thu, 25 Feb 2016 14:03:59 GMT</pubDate>
		</item>
		<item>
			<title>Разрешение экрана</title>
			<description>Напоминание о разрешениях экранов мониторов и соотношении сторон кадров. Из Википедии</description>
			<content:encoded>&lt;p&gt;Продолжаем тему памятных записок. На&amp;nbsp;этот раз нас интересуют
 величины, характеризующие разрешение экранов мониторов или соотношение
 сторон изображений.&lt;/p&gt;
 &lt;p&gt;При работе с&amp;nbsp;сайтами эта информация периодически требуется, поэтому
 лучше сохранить ссылку на&amp;nbsp;неё под рукой. Итак, «&lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot;
 target=&quot;_blank&quot; title=&quot;Открыть статью Википедии Разрешение экрана монитора в соседней вкладке&quot;
 href=&quot;https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B0&quot;&gt;Разрешение
 экрана монитора&lt;/a&gt;» и, на&amp;nbsp;всякий случай, &lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot;
 target=&quot;_blank&quot; title=&quot;Открыть скриншот статьи Википедии в соседней вкладке&quot;
 href=&quot;https://archive.is/f2UqV&quot;&gt;скриншот&lt;/a&gt;. Оттуда&amp;nbsp;же, кстати,
 и&amp;nbsp;схема, которую мы&amp;nbsp;поместили в&amp;nbsp;начале сообщения.&lt;/p&gt;
 &lt;p&gt;Также может быть полезной статья «&lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot; target=&quot;_blank&quot;
 title=&quot;Открыть статью Википедии Соотношение сторон экрана в соседней вкладке&quot;
 href=&quot;https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0&quot;&gt;Соотношение
 сторон экрана&lt;/a&gt;» (&lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot; target=&quot;_blank&quot; title=&quot;Открыть скриншот статьи Википедии в соседней вкладке&quot;
 href=&quot;https://archive.is/duB4s&quot;&gt;скриншот&lt;/a&gt;). &lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/razreshenie_ehkrana/2015-11-23-32</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/razreshenie_ehkrana/2015-11-23-32</guid>
			<pubDate>Mon, 23 Nov 2015 11:32:10 GMT</pubDate>
		</item>
		<item>
			<title>Пример команды exiv2</title>
			<description>Пример команды в консольной программе exiv2. Создаём или читаем комментарий к изображению в .jpg</description>
			<content:encoded>&lt;p&gt;Это сообщение обречено на&amp;nbsp;случийные посещения водителей одной
 известной марки автомобилей, которую мы&amp;nbsp;даже называть не&amp;nbsp;будем,
 чтобы поисковики не&amp;nbsp;подумали чего лишнего. Тут уж&amp;nbsp;ничего
 не&amp;nbsp;поделаешь: программа называется exiv2. Мы&amp;nbsp;пользуемся
 ею&amp;nbsp;довольно часто для того, чтобы добавлять комментарии
 к&amp;nbsp;изображениям в&amp;nbsp;формате.jpg.&lt;/p&gt;
 &lt;p&gt;В&amp;nbsp;этом комментарии мы&amp;nbsp;обычно указываем ссылку в&amp;nbsp;Интернете,
 откуда мы&amp;nbsp;получили картинку, и&amp;nbsp;имя автора. Поскольку программа &lt;span class=&quot;nobr&quot;&gt;всё-таки&lt;/span&gt;
 используется не&amp;nbsp;постоянно, команды имеют свойство забываться. Поэтому
 мы&amp;nbsp;решили сделать шпаргалку&amp;nbsp;— себе на&amp;nbsp;память, потомкам
 в&amp;nbsp;назидание.&lt;/p&gt;
 &lt;p&gt;Итак, нам нужно добавить комментарий к&amp;nbsp;снимку в. JPG. Пишем так:&lt;/p&gt;
 &lt;code&gt;exiv2 -c «текст_коммента» /address/photo.jpg&lt;/code&gt;
 &lt;p&gt;Утилита довольно молчалива. Чаще всего не&amp;nbsp;сообщает никаких ответов.
 Может поругаться на&amp;nbsp;неправильно составленные (по&amp;nbsp;её мнению) EXIF
 с&amp;nbsp;XMPP, но&amp;nbsp;при этом комментарий записать. В&amp;nbsp;результате
 периодически появляется желание посмотреть, а&amp;nbsp;что там записалось.
 Набираем следующее:&lt;/p&gt;
 &lt;code&gt;exiv2 -pc /address/photo.jpg&lt;br&gt;
 &lt;/code&gt;
 &lt;p&gt;Вернётся &lt;samp&gt;текст_коммента&lt;/samp&gt;.&lt;/p&gt;
 &lt;p class=&quot;sml&quot;&gt;© Фотография в&amp;nbsp;начале сообщения на&amp;nbsp;тему
 комментариев и&amp;nbsp;памятных записей&amp;nbsp;— стена в&amp;nbsp;Новодевичьем
 монастыре. Автор &lt;span class=&quot;nobr&quot;&gt;mr.va-di2013&lt;/span&gt; на&amp;nbsp;fotki.yandex.ru &lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/primer_komandy_exiv2/2015-11-17-31</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/primer_komandy_exiv2/2015-11-17-31</guid>
			<pubDate>Tue, 17 Nov 2015 10:46:32 GMT</pubDate>
		</item>
		<item>
			<title>Description страницы</title>
			<description>Как в системе #uCoz заставить автоматически заполняться мета-тег description. Один из возможных вариантов</description>
			<content:encoded>&lt;p&gt;В&amp;nbsp;конце концов каждый &lt;span class=&quot;nobr&quot;&gt;web-мастер&lt;/span&gt; приходит
 к&amp;nbsp;выводу, что оформление страниц сайта должно соответствовать
 стандартам. Нужно заполнить все &lt;span class=&quot;nobr&quot;&gt;мета-теги&lt;/span&gt;,
 и&amp;nbsp;&lt;code&gt;description&lt;/code&gt; в&amp;nbsp;том числе. Это один из&amp;nbsp;самых
 востребованных &lt;span class=&quot;nobr&quot;&gt;мета-тегов&lt;/span&gt;. Второй после &lt;code&gt;title&lt;/code&gt;.
 Рассмотрим решение проблемы в&amp;nbsp;системе &lt;a hreflang=&quot;ru&quot; type=&quot;text/html&quot;
 target=&quot;_blank&quot; title=&quot;Открыть сайт системы uCoz в соседней вкладке&quot; href=&quot;http://www.ucoz.ru/?pguid=4263151105&quot;&gt;uCoz&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;Есть технический выход из&amp;nbsp;ситуации. С&amp;nbsp;его помощью
 в&amp;nbsp;системе в&amp;nbsp;своё время разрешались проблемы с&amp;nbsp;&lt;code&gt;title&lt;/code&gt;&amp;nbsp;—
 использованием переменных (кодов) принятых в&amp;nbsp;uCoz. Например, теперь
 есть специальный код $TITLE_BAR$. Он&amp;nbsp;действует не&amp;nbsp;во&amp;nbsp;всех
 модулях, только в&amp;nbsp;Новостях и&amp;nbsp;Блоге. При генерации страницы
 вместо этой переменной система вставит &lt;span class=&quot;nobr&quot;&gt;что-нибудь&lt;/span&gt;
 подобное такому тексту:&lt;/p&gt;
 &lt;samp&gt;Репозиторий nluug.nl&amp;nbsp;— 29 Октября 2015&amp;nbsp;— Блог &lt;/samp&gt;
 &lt;p&gt;А&amp;nbsp;раньше этого кода не&amp;nbsp;было, и&amp;nbsp;те&amp;nbsp;же самые данные
 составлялись вручную из нескольких переменных:&lt;/p&gt;
 &lt;code&gt;$ENTRY_NAME$&amp;nbsp;— $ADD_DATE$&amp;nbsp;— $MODULE_NAME$&lt;/code&gt;
 &lt;p&gt;На&amp;nbsp;том&amp;nbsp;же принципе можно составить текст &lt;code&gt;description&lt;/code&gt;.
 Особенно удачно это будет выглядеть, если для новостного сообщения или
 поста в&amp;nbsp;блоге нужно составлять Краткое описание материала. Потом этот
 текст будет доступен в&amp;nbsp;виде переменной $BRIEF$. Даже если Краткое
 описание будет не&amp;nbsp;особо кратким и&amp;nbsp;выбьется
 из&amp;nbsp;рекомендованных 160 знаков&amp;nbsp;— ничего страшного. Наличие
 практически любого &lt;code&gt;description&lt;/code&gt; лучше его отсутствия. Итак,
 первый вариант:&lt;/p&gt;
 &lt;code&gt;&lt;meta name=&quot;&lt;code&gt;description&lt;/code&gt;&quot; content=&quot;$BRIEF$&quot;&amp;gt;&lt;/code&gt;
 &lt;p&gt;Другой вариант связан с формированием нужной строки. Если
 мы&amp;nbsp;не&amp;nbsp;хотим, чтобы &lt;code&gt;description&lt;/code&gt; был длиннее 160
 знаков, нам нужно обрезать текст Краткого описания. В&amp;nbsp;uCoz есть
 функция substr(S,N1,N2), где «S»&amp;nbsp;— исходная строка, «N1»&amp;nbsp;—
 позиция в&amp;nbsp;строке S&amp;nbsp;с&amp;nbsp;которой мы&amp;nbsp;начнём отсчитывать
 нужный нам результат. Позиция самого первого знака в&amp;nbsp;строке имеет
 номер 0 (ноль). А&amp;nbsp;«N2»&amp;nbsp;— число знаков, которые мы&amp;nbsp;должны
 отсчитать от&amp;nbsp;позиции N1, чтобы получить наш результат (длина конечной
 строки, иными словами).&lt;/p&gt;
 &lt;p&gt;Для нас будут актуальны следующие значения: Вместо S&amp;nbsp;подставим
 $BRIEF$; вместо N1&amp;nbsp;— 0, то&amp;nbsp;есть начнём с&amp;nbsp;самого начала;
 вместо N2&amp;nbsp;— 160. Выглядеть это будет так:&lt;/p&gt;
 &lt;code&gt;&lt;meta name=&quot;&lt;code&gt;description&lt;/code&gt;&quot;
 content=&quot;&lt;?substr($BRIEF$,0,160)?&amp;gt;&quot;&amp;gt;&lt;/code&gt;
 &lt;p&gt;Попробуем на&amp;nbsp;постах нашего сайта. Например, к&amp;nbsp;&lt;a hreflang=&quot;ru&quot;
 type=&quot;text/html&quot; target=&quot;_blank&quot; title=&quot;Открыть пост про выделение номера страницы в соседней вкладке&quot;
 href=&quot;http://www.stprg.ru/blog/vydelenie_nomera_stranitsi/2014-03-13-23&quot;&gt;статье
 про выделение номера страницы&lt;/a&gt; довольно длинное Краткое описание.
 После формирования страницы получим следующее:&lt;/p&gt;
 &lt;samp&gt;&lt;meta name=&quot;&lt;code&gt;description&lt;/code&gt;&quot; content=&quot;При работе
 с&amp;nbsp;сайтами в&amp;nbsp;системе uCoz иногда возникает проблема
 с&amp;nbsp;дублями метаописаний и&amp;nbsp;заголовков. Это происходит (кроме
 других проблем) потому, что при разбие&quot;&amp;gt;&lt;/samp&gt;
 &lt;p&gt;Здесь нужно сделать сразу несколько замечаний. &lt;span class=&quot;nobr&quot;&gt;Во-первых&lt;/span&gt;,
 видно, что текст обрублен на&amp;nbsp;полуслове. Так будет не&amp;nbsp;всегда. Всё
 зависит от&amp;nbsp;самого текста краткого описания. С «обрубками» можно
 бороться, а&amp;nbsp;можно ничего не делать. Мета-тег &lt;code&gt;description&lt;/code&gt;
 относится к техническим данным, которые придуманы для машин,
 а&amp;nbsp;не&amp;nbsp;для людей. Если, например, поисковик решит, что данный &lt;code&gt;description&lt;/code&gt;
 хорошо описывает эту конкретную страницу, то&amp;nbsp;он&amp;nbsp;может
 использовать его в&amp;nbsp;поисковой выдаче. И в этом случае
 мы&amp;nbsp;не&amp;nbsp;видим большой проблемы в&amp;nbsp;том, что в выдаче будет
 такое обрубленное описание. С другой стороны, поисковики могут его
 модифицировать, дополнительно резать или вообще не&amp;nbsp;использовать, то
 есть мы не можем заранее знать, будет ли использован этот &lt;code&gt;description&lt;/code&gt;
 вообще. Большого смысла в том, чтобы пытаться составить его в виде
 правильной литературной фразы, мы не видим. Так что можно оставить всё,
 как есть.&lt;/p&gt;
 &lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;Во-вторых&lt;/span&gt;, нужно иметь в виду, что
 мы&amp;nbsp;записали краткое описание к посту простым текстом, без
 использования &lt;span class=&quot;nobr&quot;&gt;html-тегов&lt;/span&gt;. Если
 их&amp;nbsp;использовать, то&amp;nbsp;$BRIEF$ будет выведен вместе с&amp;nbsp;ними.
 Соответственно, они будут считаться функцией substr() и&amp;nbsp;выводиться
 в&amp;nbsp;&lt;code&gt;description&lt;/code&gt;. Нам этого не&amp;nbsp;надо. А&amp;nbsp;учитывая,
 что именно текст «брифа» забирается для постинга в&amp;nbsp;&lt;span class=&quot;nobr&quot;&gt;соц-сети&lt;/span&gt;,
 это никому не&amp;nbsp;надо. Отсюда правило: Краткое описание пишем простым
 текстом (plain text).&lt;/p&gt;
 &lt;p&gt;Для тех, кто не может успокоиться из-за обрывков текста &lt;code&gt;description&lt;/code&gt;,
 мы продолжим наши усовершенствования в&amp;nbsp;следующем посте. &lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/description_stranicy/2015-11-12-29</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/description_stranicy/2015-11-12-29</guid>
			<pubDate>Thu, 12 Nov 2015 09:34:47 GMT</pubDate>
		</item>
		<item>
			<title>Шифруем текст</title>
			<description>Простой способ зашифровать фразу или небольшой текст в Linux. Используем OpenSSL</description>
			<content:encoded>&lt;p&gt;Иногда бывает нужно зашифровать &lt;span class=&quot;nobr&quot;&gt;какую-нибудь&lt;/span&gt;
 фразу или текст. Например для того, чтобы передать по&amp;nbsp;открытому
 каналу или разместить собственную метку в&amp;nbsp;открытой базе данных.
 К&amp;nbsp;нашему удивлению, не&amp;nbsp;&lt;span class=&quot;nobr&quot;&gt;так-то&lt;/span&gt; просто
 найти дельный совет для решения этой задачи. &lt;span class=&quot;nobr&quot;&gt;Почему-то&lt;/span&gt;
 все считают нужным высказаться по&amp;nbsp;поводу шифрования разделов, дисков
 или директорий, а&amp;nbsp;такой простой вопрос обойдён стороной. Исправим эту
 несправедливость.&lt;/p&gt;
 &lt;p&gt;Предлагается использовать пакет openssl. В&amp;nbsp;системе Puppy Linux 5.7.1
 установлена версия 1.0.1. Набираем в&amp;nbsp;терминале:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;# openssl&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;OpenSSL&amp;gt;&lt;/samp&gt;&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;OpenSSL&amp;gt; version&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;OpenSSL 1.0.1 14 Mar 2012 &lt;br&gt;
 OpenSSL&amp;gt;&lt;/samp&gt;&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;OpenSSL&amp;gt; exit&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;#&lt;/samp&gt;&lt;/p&gt;
 &lt;p&gt;Очень хорошо. Тогда набираем следующее:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;# echo &quot;текст&quot; | openssl enc -aes-256-cfb -a -pass pass:mypassword&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;Здесь «текст»&amp;nbsp;— то, что хотим зашифровать,
 а&amp;nbsp;«mypassword»&amp;nbsp;— пароль, который идёт открытым текстом. Обо всех
 остальных ключах и&amp;nbsp;командах лучше почитать на&amp;nbsp;сайте openssl
 в&amp;nbsp;разделе справочника команд (для актуальной версии). В&amp;nbsp;нашем
 случае &lt;a hreflang=&quot;en&quot; type=&quot;text/html&quot; target=&quot;_blank&quot; title=&quot;Открыть справочную страницу для команды openssl enc версии 1.0.1&quot;
 href=&quot;https://www.openssl.org/docs/man1.0.1/apps/enc.html&quot;&gt;это здесь&lt;/a&gt;.&lt;/p&gt;
 &lt;p&gt;Кстати, результатом этой команды будет следующее: &lt;samp&gt;U2FsdGVkX1+UNvuChFwiqxRpP27ZxlM59R/7&lt;/samp&gt;,
 или следующее: &lt;samp&gt;U2FsdGVkX18×4N6iJWuaZxwsm0/FIISRcFmK&lt;/samp&gt;, или
 так: &lt;samp&gt;U2FsdGVkX19bZdbzdPmiPzRdfXG+hTyEyKo/&lt;/samp&gt;, или так &lt;samp&gt;U2FsdGVkX18nKcDk0582KvpRjQLNMGyUYfvc&lt;/samp&gt;.
 Всё это варианты выполнения указанной выше строки команд, где слово
 «текст» шифруется с&amp;nbsp;паролем «mypassword» алгоритмом &lt;a type=&quot;text/html&quot;
 hreflang=&quot;ru&quot; target=&quot;_blank&quot; title=&quot;Открыть статью на Хабре про AES&quot; href=&quot;http://habrahabr.ru/post/112733/&quot;&gt;&lt;span
 class=&quot;nobr&quot;&gt;AES-256&lt;/span&gt;&lt;/a&gt; в&amp;nbsp;режиме CFB с&amp;nbsp;последующим
 кодированием base64.&lt;/p&gt;
 &lt;p&gt;Соответственно дешифрирование производится такими командами:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;echo шифр | openssl enc -aes-256-cfb -a -d -pass pass:mypassword&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;Пробуем:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;# echo U2FsdGVkX1+UNvuChFwiqxRpP27ZxlM59R/7 | openssl enc
 -aes-256-cfb -a -d -pass pass:mypassword&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;текст&lt;br&gt;
 # &lt;/samp&gt;&lt;br&gt;
 &lt;code&gt;# echo U2FsdGVkX18x4N6iJWuaZxwsm0/FIISRcFmK | openssl enc
 -aes-256-cfb -a -d -pass pass:mypassword&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;текст&lt;br&gt;
 # &lt;/samp&gt;&lt;br&gt;
 &lt;code&gt;# echo U2FsdGVkX19bZdbzdPmiPzRdfXG+hTyEyKo/ | openssl enc
 -aes-256-cfb -a -d -pass pass:mypassword&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;текст&lt;br&gt;
 #&lt;/samp&gt;&lt;br&gt;
 &lt;code&gt;# echo U2FsdGVkX18nKcDk0582KvpRjQLNMGyUYfvc | openssl enc
 -aes-256-cfb -a -d -pass pass:mypassword&lt;/code&gt;&lt;br&gt;
 &lt;samp&gt;текст&lt;br&gt;
 # &lt;/samp&gt;&lt;br&gt;
 &lt;/p&gt;
 &lt;p&gt;Все четыре варианта дали слово «текст».&lt;/p&gt;
 &lt;p&gt;PS: Слова «дешифрование» в&amp;nbsp;русском языке нет.&lt;/p&gt;
 &lt;p&gt;PS2: Для Base64 шифрования применяем следующую команду:&lt;/p&gt;
 &lt;p&gt;&lt;code&gt;# echo | openssl base64 -in falename.jpg -A&lt;/code&gt;&lt;/p&gt;
 &lt;p&gt;В&amp;nbsp;этом случае после ключа -in идёт адрес файла, который следует
 зашифровать (в&amp;nbsp;нашем случае&amp;nbsp;— изображение в&amp;nbsp;JPEG). Ключ -A
 говорит о&amp;nbsp;том, что полученную текстовую строку &lt;strong&gt;не&lt;/strong&gt;
 надо разбивать на&amp;nbsp;блоки. &lt;/p&gt;
 &lt;p class=&quot;sml&quot;&gt;© itfo.ru Photo: demian757 via fotki.yandex.ru&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/shifruem_tekst/2015-11-10-30</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/shifruem_tekst/2015-11-10-30</guid>
			<pubDate>Tue, 10 Nov 2015 15:13:05 GMT</pubDate>
		</item>
		<item>
			<title>Репозиторий nluug.nl</title>
			<description>Предлагаем обратить внимание на репозиторий nluug.nl. Именно для пользователей Puppy Linux он может принести множество приятных неожиданностей</description>
			<content:encoded>&lt;p&gt;Хороший набор &lt;span class=&quot;nobr&quot;&gt;pet-пакетов&lt;/span&gt; располагается
 по&amp;nbsp;адресу &lt;a hreflang=&quot;en&quot; type=&quot;text/html&quot; target=&quot;_blank&quot; title=&quot;HTTP страница репозитория пакетов Puppy Linux&quot;
 href=&quot;http://ftp.nluug.nl/os/Linux/distr/puppylinux/&quot;&gt;ftp.nluug.nl/os/Linux/distr/puppylinux&lt;/a&gt;.
 Есть резон посмотреть там недостающие программы и&amp;nbsp;установить
 их&amp;nbsp;просто в&amp;nbsp;виде пакета. Например, таким образом можно
 установить Google Chrome, которого нет в&amp;nbsp;официальном репозитории
 Puppy Linux Precise 5.7.1.&lt;/p&gt;
 &lt;p&gt;Чтобы автоматизировать загрузку, можно воспользоваться скриптом
 на&amp;nbsp;примере нижепредставленного:&lt;/p&gt;
 &lt;code&gt;#!/bin/sh&lt;br&gt;
 cd /root&lt;br&gt;
 urxvt -e wget --no-check-certificate
http://ftp.nluug.nl/os/Linux/distr/puppylinux/pet_packages-precise/google-Chrome-32.0.1700.77.pet&lt;br&gt;
 petget /root/google-Chrome-32.0.1700.77.pet&lt;br&gt;
 rm /root/google-Chrome-32.0.1700.77.pet&lt;/code&gt;
 &lt;p&gt;Этот скрипт устанавливает Хром и&amp;nbsp;удаляет пакет.&lt;/p&gt;
 &lt;p&gt;А&amp;nbsp;вот другой скрипт, который установит &lt;span class=&quot;nobr&quot;&gt;Хром-41&lt;/span&gt;:&lt;/p&gt;
 &lt;code&gt;#!/bin/sh&lt;br&gt;
 cd /root&lt;br&gt;
 urxvt -e wget --no-check-certificate
http://ftp.nluug.nl/os/Linux/distr/puppylinux/pet_packages-tahr/google_chrome-41.pet&lt;br&gt;
 petget /root/google_chrome-41.pet&lt;br&gt;
 rm /root/google_chrome-41.pet&lt;/code&gt;
 &lt;p&gt;Как видно из&amp;nbsp;адреса пакета, он&amp;nbsp;предназначен для &lt;span class=&quot;nobr&quot;&gt;tahrpup-6&lt;/span&gt;,
 но&amp;nbsp;мы&amp;nbsp;попробуем установить его на&amp;nbsp;Precise.
 О&amp;nbsp;результатах доложим.&lt;/p&gt;
 &lt;p&gt;Что касается tahrpup, то&amp;nbsp;попытка перехода на&amp;nbsp;него провалилась:
 нам в&amp;nbsp;обязательном порядке требуется davfs2 для доступа к&amp;nbsp;диску
 Яндекса, а&amp;nbsp;в&amp;nbsp;том дистрибутиве этот пакет устанавливается криво.
 Признаки кривости мы&amp;nbsp;опишем чуть позже.&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/repozitorij_nluug_nl/2015-10-29-28</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/repozitorij_nluug_nl/2015-10-29-28</guid>
			<pubDate>Thu, 29 Oct 2015 16:39:05 GMT</pubDate>
		</item>
		<item>
			<title>Изображения в PDF</title>
			<description>Как извлечь изображения из файла .PDF? Часто необходимо взять их из рекламных материалов - брошюр и флаеров. Можно, конечно, воспользоваться GIMP, но это неудобно. Рассмотрим другую программу.</description>
			<content:encoded>&lt;p&gt;Чтобы выдрать изображения из.pdf файлов надо установить пакет &lt;a type=&quot;text/html&quot;
 hreflang=&quot;en&quot; target=&quot;_blank&quot; title=&quot;Открыть домашнюю страницу программного пакета в соседней вкладке&quot;
 href=&quot;http://www.foolabs.com/xpdf/home.html&quot;&gt;xpdf&lt;/a&gt;
 в&amp;nbsp;составе которого установится программа pdfimages. Для извлечения
 изображений в&amp;nbsp;консоли даём команду типа:&lt;/p&gt;
 &lt;code&gt;pdfimages -j
 /mnt/home/home/passer/Desktop/Master_Plus/adamante/Catalog.pdf
 /mnt/home/home/passer/Desktop/Master_Plus/adamante/image&lt;/code&gt;
 &lt;p&gt;&lt;span class=&quot;nobr&quot;&gt;Т. е.&lt;/span&gt;:&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;команда: &lt;code&gt;pdfimages&lt;/code&gt;,&lt;/li&gt;
 &lt;li&gt;ключ: &lt;code&gt;-j&lt;/code&gt;,&lt;/li&gt;
 &lt;li&gt;адрес файла: &lt;code&gt;.pdf&lt;/code&gt;,&lt;/li&gt;
 &lt;li&gt;маску конечных файлов: …&lt;code&gt;/image&lt;/code&gt;.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;Это всё. После того, как будет нажата кнопка &lt;code&gt;Enter&lt;/code&gt;,
 в&amp;nbsp;директории
 &lt;code&gt; adamante&lt;/code&gt; появится множество файлов вида &lt;code class=&quot;nobr&quot;&gt;image-001.jpg&lt;/code&gt;.
 Будут так&amp;nbsp;же файлы с&amp;nbsp;расширением &lt;code&gt;.PPM&lt;/code&gt;. Эти тоже
 можно посмотреть.&lt;/p&gt;
 &lt;p&gt;Разница с&amp;nbsp;GIMP состоит в&amp;nbsp;том, что графический редактор
 воспринимает страницу. PDF файла как отдельный рисунок. Если, например,
 на&amp;nbsp;странице фотография служит фоном, по&amp;nbsp;которому идёт текст,
 то&amp;nbsp;GIMP выделить её не&amp;nbsp;сможет. PDFImages делает это
 на&amp;nbsp;ходу.&lt;/p&gt;</content:encoded>
			<link>https://www.stprg.ru/blog/izobrazhenija_v_pdf/2015-10-01-27</link>
			<dc:creator>prostologin1</dc:creator>
			<guid>https://www.stprg.ru/blog/izobrazhenija_v_pdf/2015-10-01-27</guid>
			<pubDate>Thu, 01 Oct 2015 10:17:27 GMT</pubDate>
		</item>
	</channel>
</rss>