<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17131334</id><updated>2012-01-18T08:09:19.372+02:00</updated><title type='text'>Паксоблог</title><subtitle type='html'>Пак Андрей о &lt;i&gt;[не]&lt;/i&gt;многом интересном</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17131334.post-116255688319502628</id><published>2006-11-03T14:10:00.000+02:00</published><updated>2006-11-03T14:28:03.246+02:00</updated><title type='text'>Мои скрипты: translit.py</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Russian Translit"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;# -*- coding: cp866 -*-&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#dron@amerigo 200611031405&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;string&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; maketrans&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;def&lt;/span&gt; translit&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 230);"&gt;"Russian translit: converts 'привет'-&gt;'privet'"&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;assert&lt;/span&gt; s &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;is&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;not&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;str&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Error: argument MUST be string"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   table1 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; maketrans&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"абвгдеёзийклмнопрстуфхъыьэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;       &lt;span style="color: rgb(0, 0, 230);"&gt;"abvgdeezijklmnoprstufh'y'eABVGDEEZIJKLMNOPRSTUFH'Y'E"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;   table2 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ж'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'zh'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ц'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ts'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ч'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ch'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ш'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'sh'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'щ'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'sch'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ю'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ju'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'я'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'ja'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;       &lt;span style="color: rgb(0, 0, 230);"&gt;'Ж'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'Zh'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'Ц'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'Ts'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'Ч'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'Ch'&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; k &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; table2&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;keys&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;       s &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; s&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;k&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;table2&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;k&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; s&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;translate&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;table1&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;__name__&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"__main__"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; translit&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Привет питон. Что транслитерировать-то, я чёт не понял!"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Результат работы:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\home\dron\work\python&gt;translit.py&lt;br /&gt;Privet piton. Chto transliterirovat'-to, ja chet ne ponjal!&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;То же самое, но на perl(&lt;a href="http://www.mdsk.ru/tips/index.pl?theme=perl#48"&gt;источник&lt;/a&gt;):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style='color:#800000; font-weight:bold; '&gt;sub &lt;/span&gt;translit&lt;br /&gt;&lt;span style='color:#800080; '&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#800000; font-weight:bold; '&gt;my&lt;/span&gt; $text &lt;span style='color:#808030; '&gt;=&lt;/span&gt; &lt;span style='color:#800000; font-weight:bold; '&gt;shift&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;  $text &lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;~&lt;/span&gt; &lt;span style='color:#800000; font-weight:bold; '&gt;y&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;абвгдеёзийклмнопрстуфхъыьэ&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;abvgdeezijklmnoprstufh'y'e&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;  $text &lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;~&lt;/span&gt; &lt;span style='color:#800000; font-weight:bold; '&gt;y&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;ABVGDEEZIJKLMNOPRSTUFH'Y'E&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#800000; font-weight:bold; '&gt;my&lt;/span&gt; %mchars &lt;span style='color:#808030; '&gt;=&lt;/span&gt; &lt;span style='color:#808030; '&gt;(&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ж'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'zh'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ц'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ts'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ч'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ch'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ш'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'sh'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'щ'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'sch'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;br /&gt;     &lt;span style='color:#0000e6; '&gt;'ю'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ju'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'я'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'ja'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt; &lt;span style='color:#0000e6; '&gt;'Ж'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Zh'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ц'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ts'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ч'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ch'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'&lt;br /&gt;     &lt;span style='color:#0000e6; '&gt;'Щ'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Sch'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ю'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ju'&lt;/span&gt;&lt;span style='color:#808030; '&gt;,&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Я'&lt;/span&gt;&lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;'Ja'&lt;/span&gt;&lt;span style='color:#808030; '&gt;)&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#800000; font-weight:bold; '&gt;for&lt;/span&gt; &lt;span style='color:#800000; font-weight:bold; '&gt;my&lt;/span&gt; $c &lt;span style='color:#808030; '&gt;(&lt;/span&gt;&lt;span style='color:#800000; font-weight:bold; '&gt;keys&lt;/span&gt; %mchars&lt;span style='color:#808030; '&gt;)&lt;/span&gt; &lt;span style='color:#800080; '&gt;{&lt;/span&gt;&lt;br /&gt;      $text &lt;span style='color:#808030; '&gt;=&lt;/span&gt;&lt;span style='color:#808030; '&gt;~&lt;/span&gt; &lt;span style='color:#800000; font-weight:bold; '&gt;s&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;$c&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;$mchars&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;{&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;$c&lt;/span&gt;&lt;span style='color:#0000e6; '&gt;}&lt;/span&gt;&lt;span style='color:#800000; '&gt;/&lt;/span&gt;&lt;span style='color:#800000; font-weight:bold; '&gt;g&lt;/span&gt;&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#800080; '&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style='color:#800000; font-weight:bold; '&gt;return&lt;/span&gt; $text&lt;span style='color:#800080; '&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style='color:#800080; '&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt;, &lt;a href="http://technorati.com/tag/translit" rel="tag"&gt;translit&lt;/a&gt;, &lt;a href="http://technorati.com/tag/perl" rel="tag"&gt;perl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-116255688319502628?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/116255688319502628/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=116255688319502628' title='6 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/116255688319502628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/116255688319502628'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/11/translitpy.html' title='Мои скрипты: translit.py'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115709700033512123</id><published>2006-09-01T10:50:00.000+03:00</published><updated>2006-10-03T13:04:50.216+03:00</updated><title type='text'>Афоризм</title><content type='html'>&lt;br/&gt;&lt;a href="http://xekc.livejournal.com/268271.html" &gt;xekc: Остановите землю, я посплю&lt;/a&gt; &lt;br/&gt; &lt;blockquote&gt;100% проектов, которые вы не начали - провалились.&lt;br /&gt;100% идей, которые вы не высказали - лажа.&lt;br /&gt;100% того, что находится только в вашей голове - никчемно, ничего не стоит.&lt;br /&gt;&lt;br /&gt;Даже 1% одобрения это уже победа. Потому что иначе ноль.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Красиво сказано.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115709700033512123?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115709700033512123/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115709700033512123' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115709700033512123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115709700033512123'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/09/blog-post.html' title='Афоризм'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115514906306739146</id><published>2006-08-09T21:44:00.000+03:00</published><updated>2007-11-14T12:46:55.095+02:00</updated><title type='text'>t.y.p.o.r.g.a.n.i.s.m : ASCII-O-Matic</title><content type='html'>&lt;a href="http://www.typorganism.com/asciiomatic/"&gt;Typorganism&lt;/a&gt; - занимательное flash-приложение, которое генерирует ASCII-представление изображения. Можно "аплоадить" свои изображения, но есть ограничение на размер - 60x50 px, есть экспорт в HTML, что весьма удобно.&lt;br /&gt;Получается очень красиво, вот что на мое фото выдало:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/me_ascii.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6102/1585/320/me_ascii.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/%D0%BA%D1%80%D0%B0%D1%81%D0%B8%D0%B2%D0%BE" rel="tag"&gt;красиво&lt;/a&gt;, &lt;a href="http://technorati.com/tag/flash" rel="tag"&gt;flash&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ascii" rel="tag"&gt;ascii&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115514906306739146?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115514906306739146/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115514906306739146' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115514906306739146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115514906306739146'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/08/typorganism-ascii-o-matic.html' title='t.y.p.o.r.g.a.n.i.s.m : ASCII-O-Matic'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115477282307471845</id><published>2006-08-05T12:54:00.000+03:00</published><updated>2006-08-05T13:24:57.406+03:00</updated><title type='text'>Javascript: тест скорости в броузерах</title><content type='html'>&lt;a href="http://celtickane.com/"&gt;Sean Patrick&lt;/a&gt; опубликовал занимательный материал под названием "&lt;a href="http://celtickane.com/projects/jsspeed.php"&gt;Javascript Speed Tests&lt;/a&gt;"&lt;br /&gt;А вот результаты "прогона" тестов на мей рабочей машине(athlon64 3000+, 1Gb):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/javascript_benchmark.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6102/1585/320/javascript_benchmark.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Результаты, признаться, удивили. Вопервых - &lt;a href="http://www.opera.com/"&gt;Opera&lt;/a&gt;  почти в 4 раза шустрее &lt;a href="http://www.mozilla.com/firefox/"&gt;огнелиса&lt;/a&gt;.&lt;br /&gt;Во-вторых - &lt;a href="http://maxthon.ru/"&gt;Maxthon&lt;/a&gt; в 2 раза быстрее &lt;a href="http://www.microsoft.com/windows/ie/"&gt;MSIE&lt;/a&gt;. Как такое может случиться, если он на движке MSIE, очень странно...&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/javascript" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://technorati.com/tag/benchmark" rel="tag"&gt;benchmark&lt;/a&gt;, &lt;a href="http://technorati.com/tag/tests" rel="tag"&gt;tests&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115477282307471845?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115477282307471845/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115477282307471845' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115477282307471845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115477282307471845'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/08/javascript.html' title='Javascript: тест скорости в броузерах'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115452118301217896</id><published>2006-08-02T15:19:00.000+03:00</published><updated>2006-08-05T14:14:15.136+03:00</updated><title type='text'>Мои скрипты: mailman_debounce.py</title><content type='html'>Из предыдущего &lt;a href="http://paxoblog.blogspot.com/2006/08/blog-post_02.html"&gt;поста&lt;/a&gt; можно выявить, что 1084(35%) подписчиков не получают рассылки, ситуацию исправит следующий сценарий:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#!/usr/bin/env python&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;"""mailman tools: Unlocks ALL bounced users"""&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#mailman_debounce.py&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#dron@amerigo 200608021443&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#rev. 0.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; sys&lt;br /&gt;MM_HOME &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"/usr/local/mailman"&lt;/span&gt;&lt;br /&gt;sys&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;path&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;append&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;MM_HOME &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"/scripts"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;#paths.py&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; paths&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; Mailman &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; MailList&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; Mailman &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; MemberAdaptor&lt;br /&gt;&lt;br /&gt;ml_name &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'spo'&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;#change or sys.argv[1]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ml &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; MailList&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;MailList&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;name&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;ml_name&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; lock&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;lockedlm &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;members&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;keys&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;getDeliveryStatus&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;m&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; MemberAdaptor&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;BYBOUNCE&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Bounced users found: %d"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;lockedlm&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; lm &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; lockedlm&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;   ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;setDeliveryStatus&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;lm&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;MemberAdaptor&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;ENABLED&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Save&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;#don't forget&lt;/span&gt;&lt;br /&gt;ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Unlock&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lockedlm &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;members&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;keys&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;getDeliveryStatus&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;m&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; MemberAdaptor&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;BYBOUNCE&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Bounced users found: %d, total: %d, disabled: %d"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;  &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;lockedlm&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;members&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;keys&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;&lt;br /&gt; len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; m &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;members&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;keys&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;) &lt;/span&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; ml&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;getDeliveryStatus&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;m&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;!&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; MemberAdaptor&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;ENABLED&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Результат исполнения:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ chmod +x mailman_debounce.py&lt;br /&gt;$ ./mailman_debounce.py&lt;br /&gt;Bounced users found: 1084&lt;br /&gt;Bounced users found: 0, total: 3090, disabled: 0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mailman" rel="tag"&gt;mailman&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115452118301217896?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115452118301217896/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115452118301217896' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115452118301217896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115452118301217896'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/08/mailmandebouncepy.html' title='Мои скрипты: mailman_debounce.py'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115450994748727206</id><published>2006-08-02T12:12:00.000+03:00</published><updated>2006-08-02T12:27:30.616+03:00</updated><title type='text'>Новые соцсервисы по-русски</title><content type='html'>Зарегистрировался сегодня на  &lt;a href="http://www.blogus.ru/"&gt;блогусе&lt;/a&gt;. На данный момент 10 человек классифицировали этот &lt;a href="http://del.icio.us/url/ec688b4e085cf74e672882ff1bdd1720?settagview=list"&gt;интересный сервис&lt;/a&gt; &lt;i&gt;[ 5*blogs 4*rating 4*search 3*blog 3*russian]&lt;/i&gt;. Трудно не заметить что начался бум социальных сервисов. Пару дней назад, благодаря блогу &lt;a href="http://softwaremaniacs.org/blog/"&gt;Ивана Сагалаева&lt;/a&gt;, узнал о другом &lt;a href="http://news2.ru/"&gt;новостном социальном сервисе&lt;/a&gt;. Его уже 48 человек &lt;a href="http://del.icio.us/url/6cb41c2b470d1d0de79114d03ac63058"&gt;протегировало&lt;/a&gt;: &lt;i&gt;[30*news 23*web2.0 16*blog 12*russian 11*ajax 11*новости 7*digg 4*social 3*computers 3*internet 2*blogs 2*rss 2*ru 2*technology 2*web 2*каталог 2*ссылки]&lt;/i&gt;&lt;br /&gt;Заметим, что они русскоязычные, а это не может не радовать. Самая очевидная ценность таких сервисов - быстро находить &lt;b&gt;ПОПУЛЯРНОЕ&lt;/b&gt;, а-ля &lt;a href="http://del.icio.us/popular"&gt;del.icio.us&lt;/a&gt;. К примеру - &lt;a href="http://del.icio.us/popular/web2.0"&gt;del.icio.us/popular/web2.0&lt;/a&gt;, и мы даже видим "смежные популярности" - можно это даже сравнить с интерпретацией соотв. термина (&lt;em&gt;web2.0 - is&lt;/em&gt;):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ajax&lt;br /&gt;tools&lt;br /&gt;web&lt;br /&gt;blog&lt;br /&gt;social&lt;br /&gt;design&lt;br /&gt;webdesign&lt;br /&gt;community&lt;br /&gt;technology&lt;br /&gt;javascript&lt;br /&gt;rss&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;В первом случае в поп(точнее в &lt;a href="http://www.blogus.ru/pop/blogs/Default.aspx"&gt;топ&lt;/a&gt;) попал &lt;a href="http://drugoi.livejournal.com/"&gt;Журнал Другого&lt;/a&gt;. А действительно классный фотоблог, &lt;a href="http://pics.livejournal.com/drugoi/pic/0032sk96.jpg"&gt;фото&lt;/a&gt; &lt;a href="http://pics.livejournal.com/drugoi/pic/0032rw3r.jpg"&gt;отменные&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Вот, странно, что во втором случае топа нет, есть &lt;a href="http://news2.ru/index.php?order=all"&gt;рекомендованные участниками новости&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Свободное тэгирование (free tagging) - суть &lt;a href="http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BB%D0%BA%D1%81%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F"&gt;фолксономии&lt;/a&gt; является различительной чертой соцсервисов.&lt;br /&gt;Будем следить за развитием.&lt;br /&gt;Закладки по &lt;a href="http://del.icio.us/areus/folksonomy"&gt;теме&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/social" rel="tag"&gt;social&lt;/a&gt;, &lt;a href="http://technorati.com/tag/по-русски" rel="tag"&gt;по-русски&lt;/a&gt;, &lt;a href="http://technorati.com/tag/интересные+блоги" rel="tag"&gt;интересные+блоги&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115450994748727206?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115450994748727206/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115450994748727206' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115450994748727206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115450994748727206'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/08/blog-post.html' title='Новые соцсервисы по-русски'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115438192451052985</id><published>2006-08-01T00:38:00.000+03:00</published><updated>2006-08-05T14:52:24.223+03:00</updated><title type='text'>Far: plugin-ы, проверенные временем</title><content type='html'>Когда я начинал работать в &lt;a href="http://bstport.berdyansk.net"&gt;порту&lt;/a&gt;(на момент  31.08.03) список &lt;a href="http://plugring.farmanager.com/"&gt;плагинов&lt;/a&gt; &lt;a href="http://farmanager.com/"&gt;far&lt;/a&gt;'а был следующим:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;bc                    │Background copy (v1.0 build 50 release).              &lt;br /&gt;Branch14              │Branch(Ветвь каталога)                                &lt;br /&gt;Calc                  │FAR Manager Calculator v3.0                           &lt;br /&gt;ClpSelect             │Select-From-Clipboard Plugin                          &lt;br /&gt;colorer-take5.beta1a  │syntax  highlighting  and text parsing library        &lt;br /&gt;Compare               │Advanced compare                                      &lt;br /&gt;DescSelect11          │Description Search/Select                             &lt;br /&gt;Dirhotlist10          │Directory Hotlist                                     &lt;br /&gt;Editor                │Editor Plugins                                        &lt;br /&gt;EMenu                 │Explorer Context Menu                                 &lt;br /&gt;esc19                 │[ESC] Editor's settings changer 1.9                   &lt;br /&gt;FARCmds               │FAR Commands                                          &lt;br /&gt;FarDocBrowser101      │Browsing, viewing and changing contents of compound fil&lt;br /&gt;FarEnv102             │Switching between different environment profiles      &lt;br /&gt;FarMail30b5           │SMTP/POP3/IMAP4 клиент. Форматы сообщений: текст, HTML,&lt;br /&gt;farnav18r5            │Far Navigator (ProxyFtp) plugin                       &lt;br /&gt;farreg215             │Registry Browser Plugin for FAR                       &lt;br /&gt;FarSvc21              │Service Manager                                       &lt;br /&gt;FileCase              │File names case conversion                            &lt;br /&gt;Frb100b5              │allows to work with resources in .exe and .dll files. F&lt;br /&gt;Help150               │*.CHM Help                                            &lt;br /&gt;HlfViewer             │HLF-file Viewer                                       &lt;br /&gt;hyperview11r7         │Этот плагин позволяет просматривать html-файлы,текст пр&lt;br /&gt;ICache05              │MSIE cache browser v1.05                              &lt;br /&gt;InstExpl01            │InstallExplorer Ver 0.1                               &lt;br /&gt;lookdbf               │DBF-files view, change and export                     &lt;br /&gt;MacroView21_rc9       │Manipulating FAR macro commands v2.1                  &lt;br /&gt;MailView10b2          │MailView 1.0 beta 2 plugin                            &lt;br /&gt;mrrip0_15_23_24b      │Плагин для выдирания различных файлов из недр других фа&lt;br /&gt;MultiArc              │Archive support plugin                                &lt;br /&gt;NamedFolders148       │Named Folders                                         &lt;br /&gt;Network               │Network browser plugin                                &lt;br /&gt;PEditor04             │Редактор PE файлов                                    &lt;br /&gt;PrintMan              │Print manager                                         &lt;br /&gt;ProcList              │Process list                                          &lt;br /&gt;ShLnk121              │Shell file and folder link support                    &lt;br /&gt;SpecialFld            │Special Folders                                       &lt;br /&gt;StaMgr11a             │Startup Manager 1.1a                                  &lt;br /&gt;TextNavigate          │Text Navigator plugin for FAR 1.70b4+                 &lt;br /&gt;TmpPanel              │Temporary panel                                       &lt;br /&gt;trtpl119              │True Template                                         &lt;br /&gt;Uinst13               │FarUInst 1.3 beta                                     &lt;br /&gt;UWizard09             │Unicode Wizard (version 0.9)                          &lt;br /&gt;WEB                   │WEB Editor 1.002 (BeNuts)                             &lt;br /&gt;WLL_V101              │WindowsList  v.1.01                                   &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Сейчас(на момент  01.08.07) он сузился:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;7z                    │4.32 7-Zip Plugin for FAR Manager&lt;br /&gt;ActiveHelp            │3.01 for  opening  windows  help files&lt;br /&gt;bc                    │1.2b54 view/edit/copy/move/delete/run with Unicode supp&lt;br /&gt;ClipSel               │1.1 Select-From-Clipboard&lt;br /&gt;Colorer               │Colorer-take5 Library beta4. $Date: 2005/04/28 14:18:08&lt;br /&gt;Compare               │Advanced compare&lt;br /&gt;DescSS                │1.1 Description Search &amp;amp; Select&lt;br /&gt;Editor                │Editor Plugins&lt;br /&gt;EMenu                 │Explorer Context Menu&lt;br /&gt;Esc                   │2.3 Editor's settings changer&lt;br /&gt;FARCmds               │FAR Commands&lt;br /&gt;FarNav                │1.9.r2 ProxyKit for FAR manager&lt;br /&gt;FarReg                │2.19 Registry Browser Plugin for FAR&lt;br /&gt;FarSvc                │2.1 Service Manager&lt;br /&gt;FileCase              │File names case conversion&lt;br /&gt;FTP                   │FTP client&lt;br /&gt;HlfViewer             │HLF-file Viewer&lt;br /&gt;HyperView             │1.1.r7 view html files in internal editor&lt;br /&gt;MacroView             │2.4.rc1&lt;br /&gt;MailView              │1.0b7&lt;br /&gt;MultiArc              │Archive support plugin&lt;br /&gt;NamedFolders          │1.4.8 fast access to local, net and virtual  directorie&lt;br /&gt;Network               │Network browser plugin&lt;br /&gt;PEditor               │0.4 PE(Portable Executable) Editor&lt;br /&gt;PrintMan              │Print manager&lt;br /&gt;ProcList              │Process list&lt;br /&gt;Resource              │1.0b5 Resource Browser&lt;br /&gt;TextNavigate          │0.1 Text Navigator plugin for FAR 1.70b4+&lt;br /&gt;TmpPanel              │Temporary panel&lt;br /&gt;TrueTemplate          │1.28 True Template&lt;br /&gt;Uninstall             │1.09 Удаление программ&lt;br /&gt;UWizard               │1.6 Unicode Wizard&lt;br /&gt;WebEd                 │1.002 WEB Editor (BeNuts)&lt;br /&gt;WinScp                │1.4.2 WinSCP as FAR Plugin&lt;br /&gt;WL                    │1.01 WindowsList&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;три года прошло, и что сменилось? Остались самые "проверенные".&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/far" rel="tag"&gt;far&lt;/a&gt;, &lt;a href="http://technorati.com/tag/plugins" rel="tag"&gt;plugins&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8" rel="tag"&gt;мои+сборки&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115438192451052985?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115438192451052985/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115438192451052985' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115438192451052985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115438192451052985'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/08/far-plugin.html' title='Far: plugin-ы, проверенные временем'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115434386492914526</id><published>2006-07-31T13:20:00.000+03:00</published><updated>2006-07-31T19:21:27.066+03:00</updated><title type='text'>Мои скрипты: renbycue.py</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Разрежем большой MP3, протегируем малые по CUE-файлу&lt;/span&gt;.&lt;br /&gt;Скачал я альбом с помощью осла - &lt;a href="ed2k://%7Cfile%7CVA_-_Safi_Connection_The_Remixes-2006-UPE.rar%7C123212337%7C6A07AD217D605782B1621471564A3D0A%7C/"&gt;VA_-_Safi_Connection_The_Remixes&lt;/a&gt;&lt;br /&gt;А он весь одним большим mp3 (118Mb), решил порезать, благо прилагался cue-файл следующего содержания:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PERFORMER &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;VA&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;TITLE &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Safi Connection The Remixes&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;FILE &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;01-va_-_safi_connection_the_remixes-upe.mp3&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt; MP3&lt;br /&gt;TRACK &lt;span style="color: rgb(0, 140, 0);"&gt;01&lt;/span&gt; AUDIO&lt;br /&gt;TITLE &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Hello Houston Spiritual Enhancer Rmx&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;PERFORMER &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Safi Connection&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;FLAGS DCP&lt;br /&gt;INDEX &lt;span style="color: rgb(0, 140, 0);"&gt;01&lt;/span&gt; &lt;span style="color: rgb(135, 69, 160);"&gt;00:00:00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;TRACK &lt;span style="color: rgb(0, 140, 0);"&gt;10&lt;/span&gt; AUDIO&lt;br /&gt;TITLE &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Fullon String Elec 3 Rmx&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;PERFORMER &lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Safi Connection&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;br /&gt;FLAGS DCP&lt;br /&gt;INDEX &lt;span style="color: rgb(0, 140, 0);"&gt;00&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;67&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(135, 69, 160);"&gt;05:01&lt;/span&gt;&lt;br /&gt;INDEX &lt;span style="color: rgb(0, 140, 0);"&gt;01&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;67&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(135, 69, 160);"&gt;07:01&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Дядька Curt сказал что нарезает в &lt;a href="http://www.steinberg.net/"&gt;WaveLab&lt;/a&gt; , я и последовал его рекомендации. Нашел этот инструмент на &lt;a href="http://wzor.net/modules.php?name=News&amp;file=article&amp;amp;sid=3791"&gt;Wzor&lt;/a&gt;'е и у &lt;a href="http://fixdown.com/soft/7850.asp"&gt;китайцев&lt;/a&gt;.&lt;br /&gt;Для упрощения "нарезки", написал следующий сценарий на &lt;a href="http://python.ru"&gt;python&lt;/a&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"cue info - print info from *.cue"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#cuei.py&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#rev. 0.2&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#dron@amerigo 200607311244&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; sys&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; datetime &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; timedelta&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; ID3 &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;all &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;open&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;read&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;tracks &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;el&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;split&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"\n"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; el &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; all&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;split&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TRACK"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;label &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"PERFORMER"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;album &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TITLE"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;starts &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;tracklist &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;range&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;tracks&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;title &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TITLE"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;artist &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"PERFORMER"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;startswith&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"FLAGS"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;    startfrom &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;8&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;else&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;    startfrom &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;8&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;h&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;m&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  startfrom&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;split&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;":"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;t &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; timedelta&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;br /&gt;        hours&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;h&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;        minutes&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;m&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;        seconds&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;starts&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;append&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;t&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;tracklist&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;append&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"%d: %s - %s, from: %s,"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; artist&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; title&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; startfrom&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lengths &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;range&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;starts&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;lengths&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;append&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;str&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;starts&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt; starts&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lengths&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;reverse&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;lengths&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;append&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"??:??:??"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;range&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;tracklist&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; tracklist&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; lengths&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Он парсит *.cue и вычисляет длину треков(длины часто не совпадают с заявленными в cue).&lt;br /&gt;Вот его результат его работы:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\mp3&gt;python cuei.py 01-va_-_safi_connection_the_remixes-upe.cue&lt;br /&gt;1: Safi Connection - Hello Houston Spiritual Enhancer Rmx, from: 00:00:00, 7:09:&lt;br /&gt;2: Elec 3 feat. Anna K. - Define Yourself Safi Connection Rmx, from: 07:09:48, 7&lt;br /&gt;3: Safi Connection And Saly D - Humna Lights Smhug Rmx, from: 14:17:37, 8:25:12&lt;br /&gt;4: Smhug - Decode Safi Connection Rmx, from: 22:42:49, 7:25:15&lt;br /&gt;5: Safi Connection - Solaric Seeds Life Style Rmx, from: 30:07:64, 6:53:39&lt;br /&gt;6: Safi Connection - Froze Uriya Rmx, from: 37:01:43, 7:01:11&lt;br /&gt;7: Safi Connection - Tarazan And JD-J Burn In Noise Rmx, from: 44:02:54, 7:12:10&lt;br /&gt;8: Lemurians - Systematic Waves Safi Connection Rmx, from: 51:15:04, 7:03:18&lt;br /&gt;9: Safi Connection - Figga Nigga Parrket Rmx, from: 58:18:22, 8:46:39&lt;br /&gt;10: Safi Connection - Fullon String Elec 3 Rmx, from: 67:05:01, ??:??:??&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Далее "нарезал" 10 mp3-файлов, сохраняя каждый под его порядковым номером:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/py_mp3_cue_wavelab_out_ss.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/py_mp3_cue_wavelab_out_ss.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;А вот скрипт, который все переименует и расставит mp3-тэги(точнее id3-тэги):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Renames and tags \d+.mp3 in './' by cue-file"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#renbycue.py&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#rev. 0.3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#dron@amerigo 200607311241&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; os&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; sys&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;from&lt;/span&gt; ID3 &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;import&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;all &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;open&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sys&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;argv&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;read&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;tracks &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;el&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;split&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"\n"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; el &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; all&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;split&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TRACK"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;perf &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"PERFORMER"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;album &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TITLE"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; album&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;  perf&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; i &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;range&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(227, 74, 220);"&gt;len&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;tracks&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;title &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"TITLE"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;artist &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;replace&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"PERFORMER"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;startswith&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"FLAGS"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;#pass FLAGS&lt;/span&gt;&lt;br /&gt;    startfrom &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;8&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;else&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;    startfrom &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; tracks&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;strip&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;8&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"%s - %s, %s"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;artist&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; title&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; startfrom&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;mp3 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"%d.mp3"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; i&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;    id3 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; ID3&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;mp3&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;title &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; title&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;artist &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; artist&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;genre &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;find_genre&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"psychadelic"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;track &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; i&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;year &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"2006"&lt;/span&gt;&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;comment &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"renbycue03.py"&lt;/span&gt;&lt;br /&gt;    id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;album &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; perf &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;" "&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; album&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; id3&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;except&lt;/span&gt; InvalidTagError&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; message&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Invalid ID3 tag:"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; message&lt;br /&gt;&lt;br /&gt;id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;write&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;id3&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;file&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;close&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;os&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;rename&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;mp3&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"%02d-%s-%s.mp3"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;%&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; artist&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; title&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Использовал готовую библиотеку &lt;a href="http://id3-py.sourceforge.net/"&gt;id3-py&lt;/a&gt;.&lt;br /&gt;Запустим на выполнение сценарий:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\mp3&gt;python renbycue.py 01-va_-_safi_connection_the_remixes-upe.cue&lt;br /&gt;Album  : VA Safi Connection The Remixes  Track : 6  Year: 2006&lt;br /&gt;Comment: renbycue03.py                   Genre : Psychadelic (67)&lt;br /&gt;Safi Connection - Tarazan And JD-J Burn In Noise Rmx, 44:02:54&lt;br /&gt;File   : 7.mp3&lt;br /&gt;Title  : Tarazan And JD-J Burn In Noise  Artist: Safi Connection&lt;br /&gt;Album  : VA Safi Connection The Remixes  Track : 7  Year: 2006&lt;br /&gt;Comment: renbycue03.py                   Genre : Psychadelic (67)&lt;br /&gt;Lemurians - Systematic Waves Safi Connection Rmx, 51:15:04&lt;br /&gt;File   : 8.mp3&lt;br /&gt;Title  : Systematic Waves Safi Connecti  Artist: Lemurians&lt;br /&gt;Album  : VA Safi Connection The Remixes  Track : 8  Year: 2006&lt;br /&gt;Comment: renbycue03.py                   Genre : Psychadelic (67)&lt;br /&gt;Safi Connection - Figga Nigga Parrket Rmx, 58:18:22&lt;br /&gt;File   : 9.mp3&lt;br /&gt;Title  : Figga Nigga Parrket Rmx         Artist: Safi Connection&lt;br /&gt;Album  : VA Safi Connection The Remixes  Track : 9  Year: 2006&lt;br /&gt;Comment: renbycue03.py                   Genre : Psychadelic (67)&lt;br /&gt;Safi Connection - Fullon String Elec 3 Rmx, 67:05:01&lt;br /&gt;File   : 10.mp3&lt;br /&gt;Title  : Fullon String Elec 3 Rmx        Artist: Safi Connection&lt;br /&gt;Album  : VA Safi Connection The Remixes  Track : 10  Year: 2006&lt;br /&gt;Comment: renbycue03.py                   Genre : Psychadelic (67)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;В исходной папке вырисовывается следующее:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/py_mp3_cue_renbycue_out_ss.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/py_mp3_cue_renbycue_out_ss.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Проверим наличие id3-тэгов с помощью &lt;a href="http://www.winamp.com/"&gt;winamp&lt;/a&gt;(Alt+3):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/py_mp3_cue_renbycue_winamp_tags_ss.3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/py_mp3_cue_renbycue_winamp_tags_ss.3.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Мои закладки по теме &lt;a href="http://del.icio.us/areus/python+mp3"&gt;тут&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mp3" rel="tag"&gt;mp3&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cue" rel="tag"&gt;cue&lt;/a&gt;, &lt;a href="http://technorati.com/tag/music" rel="tag"&gt;music&lt;/a&gt;, &lt;a href="http://technorati.com/tag/edit" rel="tag"&gt;edit&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115434386492914526?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115434386492914526/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115434386492914526' title='3 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115434386492914526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115434386492914526'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/renbycuepy.html' title='Мои скрипты: renbycue.py'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115433586598650844</id><published>2006-07-31T11:51:00.000+03:00</published><updated>2006-07-31T13:07:25.080+03:00</updated><title type='text'>Монтируем iso-шки (Alcohol 120%)</title><content type='html'>У лучшего менеджера виртуальных дисков &lt;a href="http://www.alcohol-software.com/"&gt;Alcohol 120%&lt;/a&gt;, который всегда можно скачать бесплатно у &lt;a href="http://fixdown.com/soft/4697.asp"&gt;китайцев&lt;/a&gt;. Есть замечательная утилита командной строки axcmd.exe("C:\Program Files\Alcohol Soft\Alcohol 120\AxCmd.exe").&lt;br /&gt;&lt;code&gt;&lt;br /&gt;axcmd.exe /?&lt;br /&gt;- покажет нам возможные аргументы.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Это дает возможность "прикрутить" его к пользовательскому меню Far(F2), дабы упростить(ускорить) монтирование образов дисков:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/far_alco120_mount_ss.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/far_alco120_mount_ss.0.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Пример использования - становимся на образ и жмем [F2, m]:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/far_alco120_mount_using_ss.6.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6102/1585/320/far_alco120_mount_using_ss.6.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Можно имортировать мою веточку реестра:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(227, 74, 220);"&gt;REGEDIT4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;;far_alco120_mount_menu.reg&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;;dron@amerigo 200607311137&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Far\UserMenu\MainMenu\Item3]&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;;change Item3 to ItemXX&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"HotKey"&lt;/span&gt;=&lt;span style="color: rgb(0, 0, 230);"&gt;"m"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Label"&lt;/span&gt;=&lt;span style="color: rgb(0, 0, 230);"&gt;"Mount with Alcohol !.!"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Submenu"&lt;/span&gt;=&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;dword&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;00000000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Command0"&lt;/span&gt;=&lt;span style="color: rgb(0, 0, 230);"&gt;"\"%programfiles%\\Alcohol Soft&lt;br /&gt;\\Alcohol 120\\AxCmd.exe\" 1: /M:!.!"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/far" rel="tag"&gt;far&lt;/a&gt;, &lt;a href="http://technorati.com/tag/menu" rel="tag"&gt;menu&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mount" rel="tag"&gt;mount&lt;/a&gt;, &lt;a href="http://technorati.com/tag/iso" rel="tag"&gt;iso&lt;/a&gt;, &lt;a href="http://technorati.com/tag/alcohol120" rel="tag"&gt;alcohol120&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115433586598650844?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115433586598650844/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115433586598650844' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115433586598650844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115433586598650844'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/iso-alcohol-120.html' title='Монтируем iso-шки (Alcohol 120%)'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115427240864570962</id><published>2006-07-30T18:13:00.000+03:00</published><updated>2006-07-30T23:04:04.986+03:00</updated><title type='text'>getRelativeTime() на русском</title><content type='html'>&lt;a href="http://gorod-omsk.ru/blog/pythy/2006/07/16/getrelativetime-in-russian/"&gt;Pythy о Python » Блог Архив » getRelativeTime() на русском&lt;/a&gt; &lt;br/&gt;&lt;blockquote&gt;Эхия Чеботар написал &lt;a href="http://jehiah.com/archive/printing-relative-dates-in-python"&gt;getRelativeTime()&lt;/a&gt;, функцию для отображения относительной даты текстом, а я адаптировал эту функцию к русскому языку.&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;Да это просто супер:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; from russianRelativeDates import *&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; import time&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; def a(x, *args, **kwargs):&lt;br/&gt;... print getRelativeTime(x, *args, **kwargs).encode('utf-8')&lt;br/&gt;...&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; def b(x, *args, **kwargs):&lt;br/&gt;... print getRelativeTimeStr(x, *args, **kwargs).encode('utf-8')&lt;br/&gt;...&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; x = time.time() - 1000&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; a(x)&lt;br/&gt;17 минут назад&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; x -= 12345&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; a(x)&lt;br/&gt;3 часа назад&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; x += 543211&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; a(x)&lt;br/&gt;через 6 дней&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; a(x, accuracy=2)&lt;br/&gt;через 6 дней 3 часа&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; b("07/20/06 1823")&lt;br/&gt;через 3 дня&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; b("07/10/06 1823")&lt;br/&gt;6 дней назад&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; b("07/10/06 1823", accuracy=2)&lt;br/&gt;6 дней 4 часа назад&lt;br/&gt; /&amp;gt;&amp;gt;&amp;gt; b("07/15/06 1823")&lt;br/&gt;вчера&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;Наиболее вероятное применение, для отображения даты постов, и комментариев.&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt;, &lt;a href="http://technorati.com/tag/date" rel="tag"&gt;date&lt;/a&gt;, &lt;a href="http://technorati.com/tag/time" rel="tag"&gt;time&lt;/a&gt;, &lt;a href="http://technorati.com/tag/library" rel="tag"&gt;library&lt;/a&gt;, &lt;a href="http://technorati.com/tag/интересные+блоги" rel="tag"&gt;интересные+блоги&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115427240864570962?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115427240864570962/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115427240864570962' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115427240864570962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115427240864570962'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/getrelativetime.html' title='getRelativeTime() на русском'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115427092266224405</id><published>2006-07-30T17:48:00.000+03:00</published><updated>2006-07-30T23:05:13.530+03:00</updated><title type='text'>Subversion Proxy</title><content type='html'>Чтобы svn.exe в windows "ходил" через proxy, импортировал следующий reg-файл:&lt;br/&gt;&lt;pre&gt;&lt;br/&gt;&lt;font&gt;REGEDIT4&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global]&lt;br/&gt;&lt;font&gt;"http-proxy-host"&lt;/span&gt;=&lt;font&gt;"127.0.0.1"&lt;/span&gt;&lt;br/&gt;&lt;font&gt;"http-proxy-port"&lt;/span&gt;=&lt;font&gt;"8192"&lt;/span&gt;&lt;br/&gt;&lt;font&gt;"http-compression"&lt;/span&gt;=&lt;font&gt;"yes"&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;Прочитал в документации, идущей в комплекте.&lt;br/&gt;Проверил - работает!&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/subversion" rel="tag"&gt;subversion&lt;/a&gt;, &lt;a href="http://technorati.com/tag/registry" rel="tag"&gt;registry&lt;/a&gt;, &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tag/proxy" rel="tag"&gt;proxy&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115427092266224405?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115427092266224405/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115427092266224405' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115427092266224405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115427092266224405'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/subversion-proxy.html' title='Subversion Proxy'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115400737116351863</id><published>2006-07-27T15:25:00.000+03:00</published><updated>2006-07-27T16:49:45.093+03:00</updated><title type='text'>Мои скрипты: reget.js</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;//reget.js&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;//dron@amerigo 200607271503&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;//description: adds url to RegetDx query&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;//rev 0.1&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;var&lt;/span&gt; oArgs &lt;span style="color:#808030;"&gt;=&lt;/span&gt; WScript&lt;span style="color:#808030;"&gt;.&lt;/span&gt;Arguments&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;switch&lt;/span&gt;&lt;span style="color:#808030;"&gt;(&lt;/span&gt;oArgs&lt;span style="color:#808030;"&gt;.&lt;/span&gt;Count&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#800080;"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;case&lt;/span&gt; &lt;span style="color:#008c00;"&gt;1&lt;/span&gt;&lt;span style="color:#800080;"&gt;:&lt;/span&gt; reget&lt;span style="color:#808030;"&gt;(&lt;/span&gt;oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;0&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#800080;"&gt;;&lt;/span&gt; &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;break&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;case&lt;/span&gt; &lt;span style="color:#008c00;"&gt;2&lt;/span&gt;&lt;span style="color:#800080;"&gt;:&lt;/span&gt; reget&lt;span style="color:#808030;"&gt;(&lt;/span&gt;oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;0&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;,&lt;/span&gt; oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;1&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#800080;"&gt;;&lt;/span&gt; &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;break&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;case&lt;/span&gt; &lt;span style="color:#008c00;"&gt;3&lt;/span&gt;&lt;span style="color:#800080;"&gt;:&lt;/span&gt; reget&lt;span style="color:#808030;"&gt;(&lt;/span&gt;oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;0&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;,&lt;/span&gt; oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;1&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;,&lt;/span&gt; oArgs&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;2&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#800080;"&gt;;&lt;/span&gt; &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;break&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;case&lt;/span&gt; &lt;span style="color:#008c00;"&gt;0&lt;/span&gt;&lt;span style="color:#800080;"&gt;:&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;default&lt;/span&gt;&lt;span style="color:#800080;"&gt;:&lt;/span&gt;&lt;br /&gt;    WScript&lt;span style="color:#808030;"&gt;.&lt;/span&gt;Echo&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;"Usage:&lt;/span&gt;&lt;span style="color:#0f69ff;"&gt;\r&lt;/span&gt;&lt;span style="color:#0f69ff;"&gt;\n&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;reget &amp;lt;URL&gt; [Description] [StartNow]"&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#800080;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;function&lt;/span&gt; reget&lt;span style="color:#808030;"&gt;(&lt;/span&gt;url&lt;span style="color:#808030;"&gt;,&lt;/span&gt; descr&lt;span style="color:#808030;"&gt;,&lt;/span&gt; start&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#800080;"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;if&lt;/span&gt;&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#808030;"&gt;!&lt;/span&gt;&lt;span style="color:#800000;"&gt;/&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;tp:&lt;/span&gt;&lt;span style="color:#0f69ff;"&gt;\/&lt;/span&gt;&lt;span style="color:#0f69ff;"&gt;\/&lt;/span&gt;&lt;span style="color:#808030;"&gt;.&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;{5}&lt;/span&gt;&lt;span style="color:#800000;"&gt;/&lt;/span&gt;&lt;span style="color:#808030;"&gt;.&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;test&lt;/span&gt;&lt;span style="color:#808030;"&gt;(&lt;/span&gt;url&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#800080;"&gt;{&lt;/span&gt;&lt;br /&gt;    WScript&lt;span style="color:#808030;"&gt;.&lt;/span&gt;Echo&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;"Bad URL: "&lt;/span&gt; &lt;span style="color:#808030;"&gt;+&lt;/span&gt; url&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;br /&gt;    &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;return&lt;/span&gt; &lt;span style="color:#0f4d75;"&gt;false&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#800080;"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;var&lt;/span&gt; oReget &lt;span style="color:#808030;"&gt;=&lt;/span&gt; WScript&lt;span style="color:#808030;"&gt;.&lt;/span&gt;CreateObject&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#0000e6;"&gt;"ReGetDx.ReGet2Api"&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#696969;"&gt;//As New ReGet2Api&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;var&lt;/span&gt; oRD &lt;span style="color:#808030;"&gt;=&lt;/span&gt; oReget&lt;span style="color:#808030;"&gt;.&lt;/span&gt;AddDownload&lt;span style="color:#808030;"&gt;(&lt;/span&gt;url&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#696969;"&gt;//As ReGet2Download&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;if&lt;/span&gt;&lt;span style="color:#808030;"&gt;(&lt;/span&gt;descr&lt;span style="color:#808030;"&gt;)&lt;/span&gt; oRD&lt;span style="color:#808030;"&gt;.&lt;/span&gt;String&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;12&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="color:#808030;"&gt;=&lt;/span&gt; descr &lt;span style="color:#696969;"&gt;//tagPROPERTY_ID.PID_sInfo = 12&lt;/span&gt;&lt;br /&gt;  &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;if&lt;/span&gt;&lt;span style="color:#808030;"&gt;(&lt;/span&gt;start&lt;span style="color:#808030;"&gt;)&lt;/span&gt; oRD&lt;span style="color:#808030;"&gt;.&lt;/span&gt;StartDownload&lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;return&lt;/span&gt; &lt;span style="color:#0f4d75;"&gt;true&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#800080;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Свойства и методы "вычислил" в VBA(F2):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/2761/1600/vba_reget_ss.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/4679/2761/320/vba_reget_ss.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Название объекта(ProgID) подсмотрел в реестре:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/2761/1600/far_reget_reg_ss.png"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/4679/2761/320/far_reget_reg_ss.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Если, положить reget.js в папочку, что в $PATH, то из командной строки использовать можно так:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;c:\&gt;reget.js URL ["Описание"] [startnow]&lt;br /&gt;например:&lt;br /&gt;c:\&gt;reget.js ftp://ftp.elf.stuba.sk/pub/pc/pack/uharc06b.zip&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Можно(а для этого и было написано), в командных файлах использовать:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::using_reget.cmd&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::dron@amerigo 200607271545&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;:: describes using of reget.js script&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#808030;"&gt;@&lt;/span&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;echo off&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::adding urls from file,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::with datetime as description&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::and starting download&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;for&lt;/span&gt; &lt;span style="color:#808030;"&gt;/&lt;/span&gt;f %%u &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;in&lt;/span&gt; &lt;span style="color:#808030;"&gt;(&lt;/span&gt;'&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;type&lt;/span&gt; urllist.txt'&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;do&lt;/span&gt; &lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;br /&gt;reget.js %%u &lt;span style="color:#0000e6;"&gt;"Added at %DATE% %TIME%"&lt;/span&gt; startnow&lt;br /&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::download warez from wzor.net&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::Abstract wzor-page has some like that:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::DownLoad ... [1],[2],[3],[4],[5],[6],[7]&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::if 1st link like this:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::http://koshak.wzor.net:8108/0406/MD5/audition15p1.zip&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::we have  7 parts,  so:&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;for&lt;/span&gt; &lt;span style="color:#808030;"&gt;/&lt;/span&gt;l %%p &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;in&lt;/span&gt; &lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;span style="color:#008c00;"&gt;1&lt;/span&gt;&lt;span style="color:#808030;"&gt;,&lt;/span&gt;&lt;span style="color:#008c00;"&gt;1&lt;/span&gt;&lt;span style="color:#808030;"&gt;,&lt;/span&gt;&lt;span style="color:#008c00;"&gt;7&lt;/span&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt; &lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;do&lt;/span&gt; &lt;span style="color:#808030;"&gt;(&lt;/span&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold;color:#800000;" &gt;echo&lt;/span&gt;&lt;span style="color:#0000e6;"&gt; Adding part #%%p...&lt;/span&gt;&lt;br /&gt;reget.js &lt;span style="color:#0000e6;"&gt;"http://koshak.wzor.net:8108/0406/MD5/audition15p%%p.zip"&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#808030;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::note,  that in cmdline we are using ONE '%' on var, so:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#696969;"&gt;::c:\&gt;for /l %p in (1,1,7) do reget.js "http://URL/part/%p.zip"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;А почему именно Reget?&lt;br /&gt;&lt;a href="http://reget.com/"&gt;Reget&lt;/a&gt; поддерживает такую фичу как обновление описаний файлов(жить без нее не могу), что очень удобно(и красиво &lt;a href="http://plugring.farmanager.com/cgi-bin/downld.cgi?Draw=List&amp;Sort=Date&amp;amp;SelectCateg=Addons&amp;Select=PlugIn&amp;amp;SelectPlugIn=23&amp;SelectAuthor=0&amp;amp;SelectOther=1&amp;amp;SearchText="&gt;интегрируется&lt;/a&gt; с &lt;a href="http://farmanager.com/"&gt;Far&lt;/a&gt;-ом), да и с &lt;a href="http://www.mozilla.org/projects/firefox/"&gt;огнелисом&lt;/a&gt; он быстро интегрируется с помощью расширения с названием &lt;a href="http://www.flashgot.net/"&gt;FlashGot&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Вскоре опишу Reget + &lt;a href="http://del.icio.us/areus/powershell"&gt;PowerShell&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/мои+скрипты" rel="tag"&gt;мои скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/wsh" rel="tag"&gt;wsh&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jscript" rel="tag"&gt;jscript&lt;/a&gt;, &lt;a href="http://technorati.com/tag/reget" rel="tag"&gt;reget&lt;/a&gt;, &lt;a href="http://technorati.com/tag/com" rel="tag"&gt;com&lt;/a&gt;, &lt;a href="http://technorati.com/tag/automation" rel="tag"&gt;automation&lt;/a&gt;, &lt;a href="http://technorati.com/tag/commandline" rel="tag"&gt;commandline&lt;/a&gt;, &lt;a href="http://technorati.com/tag/far" rel="tag"&gt;far&lt;/a&gt;, &lt;a href="http://technorati.com/tag/scripting" rel="tag"&gt;scripting&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115400737116351863?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115400737116351863/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115400737116351863' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115400737116351863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115400737116351863'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/regetjs.html' title='Мои скрипты: reget.js'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115399567993669384</id><published>2006-07-27T13:21:00.000+03:00</published><updated>2006-07-27T13:21:20.110+03:00</updated><title type='text'>Cannabola</title><content type='html'>Сегодня дядька Curt прислал по аське ссылочку занимательную, впечатлило...&lt;br /&gt;&lt;a href="http://forum.arbuz.uz/index.php?s=9646888c5b0271a74ca5095e1b66f42c&amp;amp;showtopic=998&amp;amp;st=10"&gt;Arbuz -&amp;gt; Каннабола&lt;/a&gt; &lt;br /&gt; &lt;blockquote&gt;У меня одногрупник курсовую защищал. И он использовал Каннаболу в своей работе. Было очень интересно смотреть на её график, спроецированный проектором на стену в присутствии умных дядечек. Заголовок над графиком гласил: "Проверим полученные результаты на Каннаболе. График этой функции показан на рисунке." &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Все началось &lt;a href="http://supman.livejournal.com/24810.html"&gt;отсюда&lt;/a&gt;:&lt;br /&gt; &lt;blockquote&gt;supman и biojane вывели математическую формулу конопляного листа: R = (1+sin(t)) (1+.9cos(8t)) (1+.1cos(24t)) график функции в полярных координатах выглядит следующим образом:&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;img src="http://supman.rinet.ru/pics/cannabis_plot.gif" /&gt;&lt;br /&gt;Какой же фуррор призвел этот пост, сколько любителей математики нашлось и высказалось по поводу.&lt;br /&gt;Интересное мнение высказано &lt;a href="http://ezhe.ru/ib/issue.html?289"&gt;тут&lt;/a&gt;.&lt;br /&gt;Мне очень нравится.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/cannabola" rel="tag"&gt;cannabola&lt;/a&gt;, &lt;a href="http://technorati.com/tag/прикольно" rel="tag"&gt;прикольно&lt;/a&gt;, &lt;a href="http://technorati.com/tag/математика" rel="tag"&gt;математика&lt;/a&gt;, &lt;a href="http://technorati.com/tag/math" rel="tag"&gt;math&lt;/a&gt;, &lt;a href="http://technorati.com/tag/красиво" rel="tag"&gt;красиво&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115399567993669384?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115399567993669384/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115399567993669384' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115399567993669384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115399567993669384'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/cannabola.html' title='Cannabola'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115394496912877796</id><published>2006-07-26T23:16:00.000+03:00</published><updated>2006-07-26T23:42:21.550+03:00</updated><title type='text'>Г.И.Гурджиев: Последний час жизни</title><content type='html'>Представьте, что вам осталось жить всего лишь несколько минут, может быть, час, и каким-то образом вы точно узнали, когда вам суждено умереть. Что бы вы сделали с последним драгоценным часом своего пребывания на земле?&lt;br /&gt;&lt;br /&gt;Если бы вы смогли завершить все свои дела за этот последний час, есть ли у вас сознание того, как это сделать?&lt;br /&gt;&lt;br /&gt;И испуская последний вздох, будете ли вы испытывать удовлетворение от того, что вы сделали в своей жизни все возможное для выполнения своих обязательств перед природой и своим "Я"?&lt;br /&gt;&lt;br /&gt;Важен не только сам последний час, важны и последние впечатления. "Последние впечатления" создают переход для будущих проявлений, если такие будут иметь место. Освобождение от низших гармоний ничего не дает, так как в конце концов все забывается, и тебя снова возвращают в этот мир. Забывается даже то, что ты хотел освобождения, чтобы стать Буддой.&lt;br /&gt;&lt;br /&gt;В реальном Мире все космосы присутствуют одновременно, всегда вибрируя, всегда поджидая, как сын ждет отца-моряка. В мире проявленном все имеет начало и все имеет конец. В Реальном Мире все всегда присутствует, и в один прекрасный день вам позволяется все забыть и покинуть его "навсегда".&lt;br /&gt;&lt;br /&gt;Свобода в миллион раз ценнее освобождения. Свободный человек и в рабстве остается сам себе хозяин. Например, я вам даю что-то, скажем, автомобиль, в котором нет горючего, поэтому автомобиль не может двинуться в путь. Вашему автомобилю требуется особое горючее, но только вы сами в состоянии определить, что это за горючее и где его получить.&lt;br /&gt;&lt;br /&gt;Вы должны сами определить, как переработать мои идеи, чтобы сделать их своими, только вам принадлежащими. Ваш автомобиль не может работать на том особом горючем, на котором работает мой автомобиль. Я предлагаю вам лишь исходное сырье. Вы обязаны извлечь из этого сырья то, что можете использовать вы. Смелее садитесь за руль.&lt;br /&gt;&lt;br /&gt;Органическая жизнь очень хрупкая. В любой момент планетарное тело может умереть. Оно всегда живет на волосок от смерти. И если вам удалось прожить еще один день, то это всего лишь нечаянно данный вам природой шанс. Если вам доведется прожить хотя бы еще час, то можете считать себя счастливчиком. С самого зачатия мы живем за счет времени, взятого взаймы.&lt;br /&gt;&lt;br /&gt;Живя в этом мире вы должны чувствовать смерть ежесекундно, поэтому держите свои дела в порядке, даже в последний свой час. Но как же узнать наверняка, который час окажется последним? Для верности улаживайте свои дела с природой и самим собой каждый данный вам час жизни, тогда вы никогда не окажетесь застигнутым врасплох. Этому человека должны обучать еще в школе, так же как правильно дышать, есть, двигаться и умирать. Это должно стать частью программы образования. В ней должно быть включено обучение, как демонстрировать наличие "Я", а так же, как формировать сознание.&lt;br /&gt;&lt;br /&gt;Вопрос: Как поступать если не чувствуешь, что что-то осталось недоделанным?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Г. ответил не сразу. Он вздохнул и ответил так&lt;/em&gt;:&lt;br /&gt;&lt;br /&gt;Спроси себя, кому придется туго, если ты умрешь, как собака. В момент смерти надо полностью осознавать себя и чувствовать, что ты сделал все возможное, чтобы во всей полноте использовать данную тебе жизнь.&lt;br /&gt;&lt;br /&gt;Сейчас вы знаете о себе не слишком много. Но с каждым днем вы копаете все глубже и глубже этот мешок с костями и узнаете все больше и больше подробностей. День за днем вы будете открывать для себя, что вы не успели сделать и что нужно переделать из того, что вами сделано. Реальный человек это тот, кто выжал из жизни все, что в ней было ценного, и сказал: "Теперь можно и умереть". Надо стараться прожить свою жизнь так, что в любой день можно было сказать себе: "Сегодня я могу умереть, ни о чем не жалея".&lt;br /&gt;&lt;br /&gt;Никогда не тратьте понапрасну последний час своей жизни, так как он может стать для вас самым главным. Если плохо им распорядиться, то потом можно пожалеть. То душевное волнение, которое вы сейчас испытываете, может стать для вас мощным источником той силы, которая может подготовить вас к безупречной смерти. Зная, что следующий час станет для вас последним, впитывайте впечатления, которые он вам принесет, как истинный гурман. Когда Госпожа Смерть вас позовет, будьте всегда к этому готовы. Мастер знает, как извлечь из каждого лакомого кусочка последнюю каплю самого ценного. Учитесь быть мастерами жизни.&lt;br /&gt;&lt;br /&gt;В молодости я учился ремеслу изготовления духов. Я учился получать из жизни ее эссенцию, ее тончайшие свойства. Во всем ищите наиболее ценное, умейте отделить тончайшее от грубого. Тот, кто научился извлекать эссенцию, самое ценное из каждого момента жизни, тот обладает сознанием любого качества.&lt;br /&gt;&lt;br /&gt;Он не способен на то, что сделал бы с миром какой-нибудь дикарь.&lt;br /&gt;&lt;br /&gt;Возможно, в последние мгновенья жизни у вас не будет выбора, где или с кем быть, но за вами останется выбор, насколько ценно вы их проведете. Умение извлекать ценное из жизни - то же самое, что извлекать из пищи, воздуха и впечатлений те субстанции, которые необходимы для построения высших тел. Если вы хотите извлечь из жизни самое ценное для себя, оно все равно должно служить высшему благу, себе достаточно оставить совсем немного. Работать над собой ради блага других - хитроумный способ получить лучшее от жизни для самого себя. Если вы не будете удовлетворены своим последним часом, значит, вы не будете довольны всей своей жизнью в целом. Умереть - значит пройти через нечто, что невозможно повторить вновь. Попусту тратить наше драгоценное время - значит, лишить себя возможности извлекать самое ценное из жизни.&lt;br /&gt;&lt;br /&gt;Прожить в этом мире от начала до конца - означает еще одно проявление Абсолюта. Все великие философы очень тщательно готовились к приходу последнего часа своей жизни. А сейчас я вам дам упражнение на подготовку к своему последнему часу на земле. Постарайтесь не исказить ни одного слова из предлагаемого упражнения.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Упражнение&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;Оглянитесь на только что прошедший час, как если бы он был для вас последним часом на земле, и вы только что осознали, что умерли. Спросите себя, довольны ли вы последним часом своей жизни?&lt;br /&gt;&lt;br /&gt;А теперь оживите себя вновь и поставьте перед собой цель в течение следующего часа (если вам посчастливится его прожить) извлечь из жизни немного больше, чем вам удалось в предыдущий час. Определите, где и когда Вам следовало быть более осознанным, где проявить больше внутреннего огня.&lt;br /&gt;&lt;br /&gt;А теперь откройте пошире ваши глаза: под этим я понимаю - откройте себя для больших возможностей, будьте чуть посмелей, чем вы были в предыдущий час. Поскольку вы знаете, что это ваш последний час и вам нечего терять, постарайтесь набраться мужества хотя бы теперь. Конечно, только без глупостей.&lt;br /&gt;&lt;br /&gt;Узнайте себя лучше, посмотрите на свою машину как бы со стороны... Теперь, когда умираешь, не к чему думать о том, как сохранить репутацию, свой престиж.&lt;br /&gt;&lt;br /&gt;И впредь, вплоть до действительно последнего часа, настойчиво стремитесь получить как можно больше ценного от жизни, развивайте интуицию. Каждый час тратьте хоть несколько мгновений, чтобы беспристрастно оценить час минувший, а затем настройтесь на то, чтобы извлечь еще больше полезного последующего часа.&lt;br /&gt;&lt;br /&gt;Если рассматривать каждый час как отдельную единицу жизни, делайте все, что в ваших силах, чтобы использовать каждую единицу жизни наиболее полно. Заставьте себя найти путь, который делал бы каждый последующий час больше, чем предыдущий, но одновременно, давал возможность рассчитаться с накопившимися на данный момент долгами. Увеличение самоощущения или самоосознания "Я", а также умение управлять собой, позволит изменить работу вашей машины, которую заносит, что служит указанием на действительные изменения. И совершенно неважно, что думает об этом сама машина.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;...Прожить оставшуюся жизнь, репетируя час за часом свою смерть, - отнюдь не патология. Никто не может получить от жизни больше, чем больной раком, примерно знающий, когда он умрет. И если он тщательно продумал, как провести оставшиеся дни, он не станет менять в корне свою жизнь, однако может позволить себе съездить туда, куда давно его тянуло, но чего он не мог сделать при обычных обстоятельствах.&lt;br /&gt;&lt;br /&gt;Человек, который знает, что скоро умрет, постарается максимально использовать каждый оставшийся ему час жизни. Именно это имел ввиду Христос, когда говорил, что последние дни наступят скоро - дни перед Страшным Судом. Мы все стоим перед лицом Суда, но судят нас не другие люди, а мы сами даем окончательную оценку своей жизни. Мы не должны провалиться на самом серьезном экзамене, где самый серьезный судья наше "Я".&lt;br /&gt;&lt;br /&gt;Каждый момент в отдельности, взятый без относительно другого момента, представляет частицу вечного Творения. Следовательно, в любой момент можно извлекать тончайшие субстанции, которые можно назвать "эссенция жизни".&lt;br /&gt;&lt;br /&gt;Мысленно представьте себе субстанцию "воздух" или субстанцию "впечатления". Наконец, нарисуйте мысленно субстанцию "момент". Да, это действительно субстанции, даже мгновения времени.&lt;br /&gt;&lt;br /&gt;Если нам удастся извлекать более тонкие субстанции из этих более грубых субстанций, то, рано или поздно, придется чем-то за это заплатить. Этот закон называется Законом Равновесия. Поэтому нам придется научиться немедленно платить за то, что мы получаем от жизни. Только в этом случае у нас не будет долгов. Платить немедленно - это то, что называют "реально делать". "Делать" - это думать, чувствовать, двигаться, но "реальная активность" - платить немедленно.&lt;br /&gt;&lt;br /&gt;Делать - может означать только одно: извлекать квинтэссенцию из каждого момента жизни и одновременно платить по всем долгам природе и самому себе, но только при наличии "Я" можно уплатить немедленно.&lt;br /&gt;&lt;br /&gt;Настоящая жизнь состоит не в изменении активности, а в изменении качества активности. Судьба - она и есть судьба. Каждый из нас должен найти свое место в общем порядке вещей. Еще не слишком поздно сделать это сейчас, хотя большую часть жизни вы впустую потратили на спячку. Начиная с сегодняшнего дня вы можете начать готовиться к смерти и, в то же время, повышать качество своей жизни. Но не тяните с началом, может, и на самом деле вам остался всем один час жизни.&lt;br /&gt;&lt;br /&gt;Вопрос: Можно ли рассказать обо всем этом другим? Я считаю важным все то, что мы услышали здесь сегодня вечером.&lt;br /&gt;&lt;br /&gt;Вы можете повторить слово в слово, но до тех пор, пока вы не сделаете это для себя, это ничем не будет значить для других. Существование есть орудие или инструмент для действия. Поразмышляйте на эту тему и узнайте, почему это верно.&lt;br /&gt;&lt;br /&gt;Вопрос: Следовательно, мы не можем платить долги, если мы не существуем и отсутствует "Я"?&lt;br /&gt;&lt;br /&gt;А чего ради у вас такая необходимость платить? За что? Если жизнь - всего лишь случайность, то нет смысла продолжать. Это вовсе не значит, что надо кончать жизнь самоубийством. Наоборот, надо приложить все усилия, чтобы жить. Человек заурядный всегда живет, просто плывя по течению. Он не просто спит, а полностью мертвец. Чтобы действительно жить, надо способствовать усилиям природы, брать от жизни активно, а не поступать пассивно - как получится.&lt;br /&gt;&lt;br /&gt;Извлекая из жизни самое ценное, надо уметь управлять своими желаниями. Проследите, насколько беспристрастно вы можете оценить сами себя. Присмотритесь к себе и вы обнаружите, сколько существует удивительных способов быть беспристрастным. Каждый раз мысленно отмечайте различные моменты проявления желаний. Делайте все по-прежнему, но только обязательно осознавайте их присутствие. Перелейте в мир часть своей крови, но более высокого плана.&lt;br /&gt;&lt;br /&gt;В конце каждого часа, оценив его пользу, представьте себе, что вы просыпаетесь в совершенно незнакомом для вас мире, по сравнению с часом предыдущим. Следует отметить, что кажущееся продолжение жизни предыдущего часа в действительности меняется ежечасно, хотя предметы и люди кажутся теми же самыми. Со временем вы сможете научиться видеть себя в виде призрака некой субстанции, который переходит из одного мира в другой, как незваный гость природы.&lt;br /&gt;&lt;br /&gt;Если рассматривать с такой точки зрения, оцените все совершаемое в обычной жизни. Видя результаты всех своих напряженных усилий в прошлом, задумайтесь над тем, какой прок от всего этого сейчас, в последний час жизни. Те, кто занят Работой, во многом мертвы для этого мира и одновременно живее всех остальных в нем. Работа... Нечто странное, неприметное, но для многих жизнь без нее немыслима.&lt;br /&gt;&lt;br /&gt;В обычном понимании жизнь - суета сует. Каким бы большим не казалось достижение по земным масштабам, рано или поздно оно оборачивалось потерей. Время истирает в пыль даже песчинки. Даже самых великих в истории людей рано или поздно забывали. Чтобы понять истинные возможности жизни на земле, надо найти то, чего можно добиться в этом мире и что будет действительно полезным в Реальном Мире.&lt;br /&gt;&lt;br /&gt;Внимательно проследите жизнь всех великих людей, которые командовали армиями, властвовали над другими. Какой им прок от всех своих великих дел теперь, после смерти? Даже при их жизни все эти дела были не более, чем пустые мечтания. Мы здесь не для того, чтобы восхвалять самих себя и вознаграждать себя; самое отвратительное в заурядном человеке - умение побыстрее удовлетворить свою плоть.&lt;br /&gt;&lt;br /&gt;Большинство людей находят массу отговорок не работать над собой. Они полностью в плену у своих слабостей. Но сейчас речь идет не о них, а о вас. Поймите меня правильно, я не нуждаюсь в последователях, я скорее заинтересован найти хороших организаторов, настоящих бойцов для нового мира. Я понимаю слабость организации, так как в данном случае речь идет не о простой организации, которая была бы инициативной.&lt;br /&gt;&lt;br /&gt;Еще раз напоминаю, научитесь с наибольшей пользой проживать каждый свой час. Составьте подробный план на последний час жизни. Чтобы понять, как надо умереть, вам придется пустить глубокие корни в жизнь, лишь тогда вы сможете умереть как человек, а не как собака. Однако не каждому дано умереть. Можно стать удобрением для нашей планеты, но это вовсе не означает умереть на самом деле. Умереть для этого мира навечно - это честь. За такую честь надо заплатить сознательной работой и преднамеренным страданием. Такое право надо заработать.&lt;br /&gt;&lt;br /&gt;Попытайтесь относительно ясно представить себе свой последний час жизни на земле. Напишите как бы сценарий этого последнего часа, словно речь идет о съемках фильма. Спросите себя ? "Так ли я хочу распорядиться своим последним часом?" Если ответ не удовлетворит вас, переписывайте сценарий до тех пор, пока он вам понравится.&lt;br /&gt;&lt;br /&gt;Смотрите на жизнь как на бизнес. Для вас время - это деньги жизни. Когда вы пришли в этот мир, вам была отпущена определенная сумма, которую вы не можете превысить. Время единственная валюта, которой вы платите за жизнь. Теперь вы видите, как глупо вы растратили большую ее часть.&lt;br /&gt;&lt;br /&gt;Вы даже не достигли простой жизненной цели - отдыхать. Как бизнесмены вы не удались, как потребители жизни - сами себя обманули. Вы всю жизнь полагали, что все дается даром, а теперь вдруг обнаружили, что - не даром. Вы платите за пользование временем, поэтому каждый миг вашего пребывания здесь чего-то стоит.&lt;br /&gt;&lt;br /&gt;Как же вам все-таки возместить хоть когда-нибудь эти потери. Проверьте, это постоянные или временные потери для вашего банковского счета? Потеряли вы или удачно поместили свой капитал? Если вы все деньги потратили на отпуск, то вам не остается ничего иного, кроме тоски по прошлому.&lt;br /&gt;&lt;br /&gt;В течение многих лет вы тратили время так, словно родители выдали вам на него открытый банковский счет. Но вот состояние спущено, вы прогорели и обнаружили, что остались одни и ни на кого не можете рассчитывать. На банковском счете времени больше нет. Теперь вы вынуждены зарабатывать каждый час жизни. Всю свою жизнь вы вели себя, как ребенок, а время тратили, как молодожены.&lt;br /&gt;&lt;br /&gt;Наш основной враг, который мешает приложить нужные усилия, - безнадежность. Знаю, у вас найдется много отговорок и оправданий тому, чтобы не готовить себя к своему последнему часу. Привычка - большая сила, но раз начав, вы можете научиться делать с каждым разом все больше и больше.&lt;br /&gt;&lt;br /&gt;Не теряйте ни одного дня попусту, заставляйте себя хотя бы час в день прилагать усилия, иначе потеряете все, что приобрели. Думайте о репетиции своего последнего часа, как о занятиях балетом - заниматься надо всю жизнь. У меня в день на это упражнение уходит четыре часа, а в молодости я посвящал ему раза в два больше.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;(Из кн.: Беседы о сокровенном. Из архивов Г.И.Гюрджиева)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://psylib.org.ua/books/_gurji01.htm"&gt;Скопировал&lt;/a&gt;, об этом &lt;a href="http://lib.ru/URIKOVA/GURDZHIEW/"&gt;человеке&lt;/a&gt; (да, не соврать, меня очень радует, что он русский) узнал из книги &lt;a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%B6%D0%BD%D0%B8%D1%88%2C_%D0%A7%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_%D0%9C%D0%BE%D1%85%D0%B0%D0%BD"&gt;ОШО&lt;/a&gt; "&lt;a href="http://www.darshi.ru/library/books/osho/osho_putMistika.zip"&gt;Путь мистика&lt;/a&gt;", а именно по цитируемой притче, которая меня очень впечатлила:&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;У хозяина в горах был дворец и дюжина слуг, и он сказал слугам, что отправляется в паломничество:&lt;br /&gt;- Может быть, оно займет год, может быть, два или три, а может быть, я вернусь, не окончив путешествия. Может быть, я вернусь с полдороги, в любой день. Поэтому будьте готовы каждый день, словно я вернусь именно в этот день. Дом должен быть в том состоянии, которое мне нравится. Не думайте: «Он вернется только через три года, зачем беспокоиться? Три года мы можем наслаждаться отдыхом». Я могу вернуться в любой момент, а может быть, вернусь через три года или через десять лет. Но, что касается вас, помните, я могу вернуться в любой момент. Это очень вероятно.&lt;br /&gt;Слуги оказались в очень трудном положении. Если бы он сказал им определенную дату, можно было бы просто отдыхать, наслаждаться. Каждый из слуг дежурил час за двадцать четыре часа; кто-то дежурил круглые сутки. Один человек дежурил час, потом другой. Прошли годы. Фактически, они совершенно забыли, что должен был вернуться хозяин, потому что прошло столько времени.&lt;br /&gt;В те времена мир был дик, и паломничество было опасным. Фактически, люди обычно отправлялись в паломничество, только когда приближались мысли о смерти, и опасности больше не было, потому что человек в любом случае собирался умереть. Очень немногие возвращались из паломничества. Слуги стали думать: «Прошло столько лет: наверное, он умер, и мы напрасно беспокоимся». Они обленились, но дежурство продолжалось, потому что глубоко внутри оставалось сомнение:&lt;br /&gt;«Кто знает? А вдруг он вернется?»&lt;br /&gt;Тем временем каждый, кто проходил у ворот, спрашивал:&lt;br /&gt;- Какой прекрасный дворец! Кто хозяин этого дворца? И каждый дежурный слуга отвечал:&lt;br /&gt;- Кто же еще? Я! Я хозяин этого прекрасного дворца. Но люди были немного озадачены, потому что у дворца каждый раз оказывался новый хозяин. Дежурные постоянно сменялись: круглые сутки кто-то дежурил в течение одного часа. Когда ты приходишь в следующий раз, то встречаешь нового человека, и он тоже претендует на то, что он хозяин.&lt;br /&gt;Считая хозяина умершим, каждый из слуг решил, что никакого вреда не будет, если объявить хозяином себя; фактически, они и были хозяевами. У хозяина не было ни сына, ни родственника, никого; он был одиночкой. И слуги стали носить его одежду, пользоваться его вещами; они действительно были убеждены в том, что он умер, а его смерть означает, что хозяева - они.&lt;br /&gt;И тогда однажды хозяин явился, и на эту сцену стоило посмотреть! Люди сбрасывали с себя одежду, бегали голые, пытаясь найти свою... царил полный хаос.&lt;br /&gt;И хозяин спросил:&lt;br /&gt;- Что случилось?&lt;br /&gt;- Мы хотим, чтобы ты нас простил, - сказали они. - Так как ты не возвращался столько лет, мы подумали, что ты вообще не вернешься. Мы дураки - необразованные, глупые люди. Мы стали пользоваться твоими вещами и претендовать на то, что хозяева - мы. Конечно, каждый был хозяином только на час. Чтобы избежать столкновений и ссор, мы решили, что пока один из нас дежурит и охраняет дом, он и хозяин, но только на час. По истечении этого часа он только слуга; хозяином становится другой человек.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://www.aferizm.ru/histiry/his_teacher_dance.htm"&gt;Гурджиев&lt;/a&gt; говорил, что эта история символизирует внутренний мир. &lt;i&gt;И ОШО продолжает&lt;/i&gt;:&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Есть множество личностей - не только пять, настоящее множество, - и они продолжают сменять друг друга. Это своего рода Клуб Ротарианцев. В Клубе Ротарианцев, чтобы избежать соревнования, каждый из его членов в свою очередь становится президентом. В следующий год - следующий... Каждый надеется, что приближается его очередь, и никто не расстраивается, когда кто-то другой становится президентом; дело только за одним годом, и президентом станет кто-то другой. Фактически, они все президенты.&lt;br /&gt;У тебя внутри тоже есть определенная очередь, и если ты продолжаешь наблюдать... Не вмешивайся в эти личности, потому что это только создаст еще больший беспорядок, больший хаос. Просто наблюдай, потому что, наблюдая эти личности, ты также осознаешь, что есть еще и наблюдатель, который не личность, перед которым проходят эти личности, возникают и исчезают.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/quote&gt;&lt;br /&gt;Вероятно, мне следовало бы написать, что думаю &lt;i&gt;Я&lt;/i&gt; по поводу написанного(скопированого, опубликованного), но &lt;i&gt;Я&lt;/i&gt; боится это делать. Я не готов, но готовлюсь...&lt;br /&gt;Я и писать-то боялся!&lt;br /&gt;Напишу!!&lt;br /&gt;&lt;i&gt;Omnia Tempus Habent&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/Гурджиев" rel="tag"&gt;Гурджиев&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Великие" rel="tag"&gt;Великие Люди&lt;/a&gt;, &lt;a href="http://technorati.com/tag/эзотерика" rel="tag"&gt;эзотерика&lt;/a&gt;, &lt;a href="http://technorati.com/tag/скопировал" rel="tag"&gt;скопировал&lt;/a&gt;, &lt;a href="http://technorati.com/tag/о" rel="tag"&gt;о жизни&lt;/a&gt;, &lt;a href="http://technorati.com/tag/интересные" rel="tag"&gt;интересные люди&lt;/a&gt;, &lt;a href="http://technorati.com/tag/созидательные" rel="tag"&gt;созидательные мысли&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ОШО" rel="tag"&gt;ОШО&lt;/a&gt;, &lt;a href="http://technorati.com/tag/притчи" rel="tag"&gt;притчи&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115394496912877796?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115394496912877796/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115394496912877796' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115394496912877796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115394496912877796'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/blog-post_26.html' title='Г.И.Гурджиев: Последний час жизни'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115392453668773442</id><published>2006-07-26T17:35:00.000+03:00</published><updated>2006-07-26T18:27:33.686+03:00</updated><title type='text'>M$ PowerShell - новое вооружение</title><content type='html'>Еще в начале года немного осматривал(тогда он еще носил кодовое название &lt;a href="http://blogs.msdn.com/monad/default.aspx"&gt;monad&lt;/a&gt;),  - новый командный интерпретатор от microsoft. Сначала, правда, я посмотрел "&lt;a href="http://del.icio.us/areus/monad+video"&gt;видик&lt;/a&gt;", где главный архитектор немного поведал о своем детище(замечу, что в списке провайдеров "get-providers"["get-psprovider" - сейчас]у него есть &lt;a href="http://del.icio.us/areus/adsi"&gt;ADSI&lt;/a&gt;, а в текущем &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2B0BBFCD-0797-4083-A817-5E6A054A85C9&amp;amp;displaylang=en"&gt;RC1&lt;/a&gt; его нет :( - а было бы классно - "&lt;i&gt;для каждого компа домена...который...применить...&lt;/i&gt;" ), а после приступил к осмотру. Признаться, шокирован возможностями, действительно ОЧЧЕНЬ круто. Мне вот все было ранее интересно: зачем допускать чтобы их(m$ - money, commerce ) cmd.exe, был по возможностям на порядки слабее "&lt;a href="http://www.gnu.org/software/bash/"&gt;баша&lt;/a&gt;"(© RSV;)). Но время шло, и эти возможности были(будут, - с выходом Vista) восполнены сполна... Сегодняшнее использование:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/&amp;gt; gwmi win32_process&lt;br /&gt;...&lt;br /&gt;ProcessName                : wmiprvse.exe&lt;br /&gt;Handles                    : 142&lt;br /&gt;VM                         : 40747008&lt;br /&gt;WS                         : 5533696&lt;br /&gt;Path                       : C:\WINDOWS\system32\wbem\wmiprvse.exe&lt;br /&gt;Caption                    : wmiprvse.exe&lt;br /&gt;CommandLine                : C:\WINDOWS\system32\wbem\wmiprvse.exe&lt;br /&gt;CreationClassName          : Win32_Process&lt;br /&gt;CreationDate               : 20060726154107.687500+120&lt;br /&gt;CSCreationClassName        : Win32_ComputerSystem&lt;br /&gt;CSName                     : ADMIN&lt;br /&gt;Description                : wmiprvse.exe&lt;br /&gt;ExecutablePath             : C:\WINDOWS\system32\wbem\wmiprvse.exe&lt;br /&gt;ExecutionState             :&lt;br /&gt;Handle                     : 3848&lt;br /&gt;HandleCount                : 142&lt;br /&gt;...&lt;br /&gt;__GENUS                    : 2&lt;br /&gt;__CLASS                    : Win32_Process&lt;br /&gt;__SUPERCLASS               : CIM_Process&lt;br /&gt;__DYNASTY                  : CIM_ManagedSystemElement&lt;br /&gt;__RELPATH                  : Win32_Process.Handle="3848"&lt;br /&gt;__PROPERTY_COUNT           : 45&lt;br /&gt;__DERIVATION               : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}&lt;br /&gt;__SERVER                   : ADMIN&lt;br /&gt;__NAMESPACE                : root\cimv2&lt;br /&gt;__PATH                     : \\ADMIN\root\cimv2:Win32_Process.Handle="3848"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Заметим, что можно использовать слайсы, не почти как в Python ([2..5] против [2:5]):&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; $(gwmi win32_process)[-1]&lt;br /&gt;&lt;i&gt; - вывод только последнего элемента&lt;/i&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Посмотрим что за функциональность есть у объекта:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; $(gwmi win32_process)[-1] | gm&lt;br /&gt;   TypeName: System.Management.ManagementObject#root\cimv2\Win32_Process&lt;br /&gt;&lt;br /&gt;Name                       MemberType            Definition&lt;br /&gt;----                       ----------            ----------&lt;br /&gt;Handles                    AliasProperty         Handles = Handlecount&lt;br /&gt;ProcessName                AliasProperty         ProcessName = Name&lt;br /&gt;VM                         AliasProperty         VM = VirtualSize&lt;br /&gt;WS                         AliasProperty         WS = WorkingSetSize&lt;br /&gt;add_Disposed               Method                System.Void add_Disposed(EventHandler value)&lt;br /&gt;...&lt;br /&gt;WriteTransferCount         Property              System.UInt64 WriteTransferCount {get;}&lt;br /&gt;Path                       ScriptProperty        System.Object Path {get=$this.ExecutablePath;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt;$oProc = $(gwmi win32_process)[-1]&lt;br /&gt; /&amp;gt;$oProc.Na&lt;TAB&gt;&lt;br /&gt; /&amp;gt;$oProc.Name&lt;br /&gt;wmiprvse.exe&lt;br /&gt; /&amp;gt;$oProc.De&lt;Press tab=""&gt; - работает автодополнение членов!!&lt;br /&gt;$oProc.Delete(&lt;br /&gt;-да, нетрудно догадаться, что это "кильнет" процесс&lt;br /&gt;&lt;/Press&gt;&lt;/TAB&gt;&lt;/code&gt;&lt;br /&gt;Запросим лишь методы объекта:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$(gwmi win32_process)[-1]|gm|? {$_.MemberType -like "Method"}&lt;br /&gt;&lt;br /&gt;   TypeName: System.Management.ManagementObject#root\cimv2\Win32_Process&lt;br /&gt;&lt;br /&gt;Name                      MemberType Definition&lt;br /&gt;----                      ---------- ----------&lt;br /&gt;add_Disposed              Method     System.Void add_Disposed(EventHandler value)&lt;br /&gt;Clone                     Method     System.Object Clone()&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Появились предикаты (алиасы были и в начале), немного поясню: $_ (из Perl'а взяли) - текущий объект - в данном случае member, потому как gm - это алиас:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; alias gm&lt;br /&gt;&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           gm                                        Get-Member&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;список всех алиасов - в студию:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; alias&lt;br /&gt;&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           ac                                        Add-Content&lt;br /&gt;Alias           asnp                                      Add-PSSnapin&lt;br /&gt;Alias           clc                                       Clear-Content&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Сколько же их всего:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; alias|measure-object&lt;br /&gt;Count    : 101&lt;br /&gt;Average  :&lt;br /&gt;Sum      :&lt;br /&gt;Maximum  :&lt;br /&gt;Minimum  :&lt;br /&gt;Property :&lt;br /&gt;&lt;br /&gt;Бывала полезной и такая конструкция(*bject* - изменяемый нами glob-паттерн):&lt;br /&gt; /&amp;gt; alias | ? {$_.Definition -like "*bject*"}&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           diff                                      Compare-Object&lt;br /&gt;Alias           foreach                                   ForEach-Object&lt;br /&gt;Alias           %                                         ForEach-Object&lt;br /&gt;Alias           group                                     Group-Object&lt;br /&gt;Alias           gwmi                                      Get-WmiObject&lt;br /&gt;Alias           select                                    Select-Object&lt;br /&gt;Alias           sort                                      Sort-Object&lt;br /&gt;Alias           tee                                       Tee-Object&lt;br /&gt;Alias           where                                     Where-Object&lt;br /&gt;Alias           ?                                         Where-Object&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;отсортируем по имени командлета(удобней искать короткие имена(алиасы)):&lt;br /&gt; /&amp;gt; alias|sort -prop Definition&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           ac                                        Add-Content&lt;br /&gt;Alias           asnp                                      Add-PSSnapin&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;а так можно запросит односимвольные алиасы(случайно выкупил :) ):&lt;br /&gt;&lt;br /&gt; /&amp;gt; alias ?&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           %                                         ForEach-Object&lt;br /&gt;Alias           ?                                         Where-Object&lt;br /&gt;Alias           h                                         Get-History&lt;br /&gt;Alias           r                                         Invoke-History&lt;br /&gt;&lt;br /&gt;иль так...&lt;br /&gt; /&amp;gt; alias ??&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Понятно, что алиас - это короткое имя для cmdlet' a(командлета, предлагаю, так называть). Еще раз посмотрим на ранее непонятную конструкцию&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$(gwmi win32_process)[-1]|gm|? {$_.MemberType -like "Method"}&lt;br /&gt;расшифровка(мы ведь уже знаем про алиасы):&lt;br /&gt;$(Get-WmiObject -computer "." Win32_Process) [-1] | Get-Member | Where-Object {$_.MemberType -like "Method"}&lt;br /&gt;-предлагаю проверить - вывод команд аналогичен&lt;br /&gt;Видно, что алиасы могут выручить, того кто не любит много набирать на клавиатуре(я такой)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Теперь, я хочу удалить все процессы прекраснейшей &lt;a href="http://miranda-im.org/"&gt;миранды&lt;/a&gt; на моей рабочей машине, сначала(удаление ч\л всегда вызывает у меня опасения(и должно, пожалуй, у каждого админа вызывать)) я посмотрю, что у меня за процессы запущены:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt;alias %&lt;br /&gt;CommandType     Name                                      Definition&lt;br /&gt;-----------     ----                                      ----------&lt;br /&gt;Alias           %                                         ForEach-Object&lt;br /&gt;&lt;br /&gt; /&amp;gt; gwmi win32_process | % {$_.CommandLine}| sort&lt;br /&gt;"C:\home\dron\tools\eMulePlus\eMule.exe"&lt;br /&gt;"C:\home\dron\tools\miranda\miranda32.exe"&lt;br /&gt;"C:\home\dron\tools\PortableFirefox\App\firefox\firefox.exe" -profile "C:\home\dron\tools\PortableF&lt;br /&gt;irefox\Data\profile"&lt;br /&gt;"C:\home\dron\tools\PortableThunderbird\thunderbird\thunderbird.exe" -profile "C:\home\dron\tools\P&lt;br /&gt;ortableThunderbird\profile"&lt;br /&gt;"C:\home\dron\tools\SQLManager2005\MsManager.exe"&lt;br /&gt;...&lt;br /&gt;"Поймаем" миранду( "-match" - для демонстрации регулярных выражений):&lt;br /&gt; /&amp;gt; gwmi win32_process|? {$_.Name -match "^miranda"} | % {$_.Name, $_.CommandLine, $_.Handle}&lt;br /&gt;miranda32.exe&lt;br /&gt;"C:\home\dron\tools\miranda\miranda32.exe"&lt;br /&gt;1132&lt;br /&gt;- поймана&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Теперь дело за малым - удаляем процесс(жесче зададим условие, чтобы не "кильнуть" лишнего):&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; gwmi win32_process|? {$_.Name -match "^miranda32.exe$"} | % {$_.Delete()}&lt;br /&gt;проверим:&lt;br /&gt; /&amp;gt; gwmi win32_process|? {$_.Name -match "^miranda"} | % {$_.Name, $_.CommandLine}&lt;br /&gt;-пусто, а значит успешно!&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Так вот все начиналось с того, что я хотел с рабочей машины(где я только, что миранду убил), убить процесс на сервере...&lt;br /&gt;Одной строчкой!&lt;br /&gt;Сначала, найдем удаленную жертву на сервере с ip-адресом 192.168.2.2:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;gwmi -comp "192.168.2.2" win32_process|? {$_.Name -like "w3*"} |% {$_.Name, $_.CommandLine, $_.Handle}&lt;br /&gt;w3wp.exe&lt;br /&gt;c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipme1fe85c2-d4fd-43e5-9e9d-fea6d699eef2 -t 20 -&lt;br /&gt;ap "DefaultAppPool"&lt;br /&gt;3612&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;К слову, его можно и по-другому убить(без &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp"&gt;WMI&lt;/a&gt;), но пост же, про &lt;a href="http://del.icio.us/popular/powershell"&gt;PowerShell&lt;/a&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;c:\&gt;TASKKILL /S 192.168.2.2 /PID 3612&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Даем убийственную команду:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt; gwmi -comp "192.168.2.2." win32_process|? {$_.Name -match "^w3wp.exe$"} | % {$_.Delete()}&lt;br /&gt;Все нуждается в проверке:&lt;br /&gt; /&amp;gt; gwmi -comp "192.168.2.2" win32_process|? {$_.Name -like "w3*"} |&lt;br /&gt;% {$_.Name, $_.CommandLine, $_.Handle}&lt;br /&gt;- пусто здесь значит успешно!&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Цель достигнута(правда, ушло 30 минут на знакомство со средой). &lt;br /&gt;Итог: инструмент - воистину фантастический, рекомендуется к применению.&lt;br /&gt;А ведь с помощью &lt;a href="http://del.icio.us/areus/wmi"&gt;WMI&lt;/a&gt; можно и создавать процессы удаленно...&lt;br /&gt;&lt;br /&gt;PS&lt;br /&gt;Да забыл о самой главной команде - "man", создадим алиас:&lt;br /&gt;&lt;code&gt;&lt;br /&gt; /&amp;gt;nal man get-help&lt;br /&gt;&lt;br /&gt;-теперь все готово к использованию:&lt;br /&gt;&lt;br /&gt; /&amp;gt;man gwmi&lt;br /&gt;&lt;br /&gt;и последнее:&lt;br /&gt;&lt;br /&gt;/&amp;gt; get-command&lt;br /&gt;или&lt;br /&gt;/&amp;gt; get-command * -type Alias&lt;br /&gt;или даже:&lt;br /&gt;/&amp;gt; get-command get-* -type Cmdlet&lt;br /&gt;&lt;br /&gt;-type может принимать сдедующие аргументы:&lt;br /&gt;&lt;em&gt;Alias&lt;br /&gt;Function&lt;br /&gt;Filter&lt;br /&gt;Cmdlet&lt;br /&gt;ExternalScript&lt;br /&gt;Application&lt;br /&gt;Script&lt;br /&gt;All&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tag/scripting" rel="tag"&gt;scripting&lt;/a&gt;, &lt;a href="http://technorati.com/tag/commandline" rel="tag"&gt;commandline&lt;/a&gt;, &lt;a href="http://technorati.com/tag/oneliners" rel="tag"&gt;oneliners&lt;/a&gt;, &lt;a href="http://technorati.com/tag/мои скрипты" rel="tag"&gt;мои скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/wmi" rel="tag"&gt;wmi&lt;/a&gt;, &lt;a href="http://technorati.com/tag/remote control" rel="tag"&gt;remote control&lt;/a&gt;, &lt;a href="http://technorati.com/tag/powershell" rel="tag"&gt;powershell&lt;/a&gt;, &lt;a href="http://technorati.com/tag/monad" rel="tag"&gt;monad&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115392453668773442?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115392453668773442/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115392453668773442' title='18 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115392453668773442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115392453668773442'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/m-powershell_26.html' title='M$ PowerShell - новое вооружение'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115391591282128099</id><published>2006-07-26T15:11:00.000+03:00</published><updated>2006-07-26T15:11:52.836+03:00</updated><title type='text'>Environ через WSH</title><content type='html'>JScript:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;WScript.CreateObject("WScript.Shell").RegWrite(&lt;br /&gt;"HKCU\\Environment\\HOME", "c:\\home\\dron", "REG_EXPAND_SZ")&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Иногда бывает нужно добавить папочку в $PATH(точнее в %PATH%), можно так(вместо Обычного Win+pause/Дополнительно/переменные среды/системные переменные/PATH/Изменить:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;//JScript&lt;br /&gt;var g_oWshShell = WScript.CreateObject("WScript.Shell");&lt;br /&gt;var g_oFSO = WScript.CreateObject("Scripting.FileSystemObject");&lt;br /&gt;&lt;br /&gt;var sFold='%ProgramFiles%\\Far\\bin';&lt;br /&gt;&lt;br /&gt;var sRegEnvPath="HKLM\\System\\CurrentControlSet\\Control\\";&lt;br /&gt;sRegEnvPath += "Session Manager\\Environment\\Path";&lt;br /&gt;&lt;br /&gt;if( ! g_oFSO.FolderExists(g_oWshShell.ExpandEnvironmentStrings(sFold)) )&lt;br /&gt;  WScript.echo(sFold + "does not exists.");&lt;br /&gt;&lt;br /&gt;if(g_oWshShell.RegRead(sRegEnvPath).indexOf(sFold) &gt;= 0)&lt;br /&gt;  WScript.echo("Folder " + sFold+ " already in PATH");&lt;br /&gt;else&lt;br /&gt; g_oWshShell.RegWrite (sRegEnvPath, g_oWshShell.RegRead(sRegEnvPath)+&lt;br /&gt;   ";"+sFold, "REG_EXPAND_SZ");&lt;br /&gt;&lt;br /&gt;WScript.echo("PATH=" + g_oWshShell.RegRead(sRegEnvPath));&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/wsh" rel="tag"&gt;wsh&lt;/a&gt;, &lt;a href="http://technorati.com/tag/environ" rel="tag"&gt;environ&lt;/a&gt;, &lt;a href="http://technorati.com/tag/oneliners" rel="tag"&gt;oneliners&lt;/a&gt;, &lt;a href="http://technorati.com/tag/мои скрипты" rel="tag"&gt;мои скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/jscript" rel="tag"&gt;jscript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115391591282128099?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115391591282128099/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115391591282128099' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115391591282128099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115391591282128099'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/environ-wsh.html' title='Environ через WSH'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115372966241019209</id><published>2006-07-24T11:27:00.000+03:00</published><updated>2006-07-24T11:27:42.420+03:00</updated><title type='text'>Почему женщина - акционерное общество?</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Почему женщина - акционерное общество?&lt;br /&gt;Когда она еще не родилась, она является 100%-ным дочерним предприятием своей матери, ее неотъемлемой частью. После рождения ее акции распределяются внутри холдинга, который мы называем семья. Какой-то процент попадает во владение отцу, значительный пакет (часто контрольный) остается у матери, бабушкам и дедушкам также достается доля, но зачастую они - явные миноритарии. Постепенно девушка вырастает, становится взрослой, и вместе с этим путем дополнительных эмиссий или просто отсуживанием во время домашних разговоров переводит акции семейного холдинга на свой баланс.&lt;br /&gt;&lt;br /&gt;И вот к концу школы наступает золотая пора IPO (initial public offering).&lt;br /&gt;&lt;br /&gt;Как правило, в такое время девушки не разбазаривают контрольный пакет, а продают лишь небольшие его части с целью "прощупать интерес" рынка. Родители могут выступать консультантами IPO, но часто ими оказываются более зрелые девушки, уже имеющие опыт первичных размещений. Они могут подсказать нужную торговую площадку, сделать независимую оценку активов и порекомендовать цену. Перед IPO проводятся многочисленные road-show в дэнс-клубах, барах, скверах и прочих местах скопления юношей-инвесторов. Они, впрочем, тоже не заинтересованы в получении сразу контрольного пакета. Интересна позиция некоторых крупных стратегических инвесторов на таких IPO. Они покупают опцион на покупку контрольного пакета, получают дивиденды в течение некоторого срока, но в итоге опцион так и остается не исполненным. По идее, такие случаи должны быть наказуемы, но не все эмитенты готовы раскрыть такую информацию, ибо она может повредить дальнейшему листингу и ликвидности.&lt;br /&gt;&lt;br /&gt;После школы и примерно до 40 лет девушки-эмитенты приступают к первичному размещению контрольного пакета своих акций. Однако, так просто его получить инвесторы не смогут. Сначала нужно собрать хотя бы 1% от уставного капитала,&lt;br /&gt;чтобы посмотреть реестр акционеров. Это дает понять перспективность и примерные сроки скупки контрольного. Далее скупается блокирующий пакет акций, инвестор попадает в Совет Директоров и оказывает влияние на финансовые и производственные потоки эмитента. Если эмитент хорош, активно развивается, у него высокая рентабельность и большие перспективы, то инвестор добирает акции до контрольного пакета и все счастливы. Это удачное развитие событий.&lt;br /&gt;&lt;br /&gt;На вопрос, сколько дивидендов должна выплачивать женщина есть много теорий.&lt;br /&gt;&lt;br /&gt;Если инвестора интересует текущий доход, то он выбирает эмитента с большими дивидендными выплатами. Однако это приводит к сокращению капитальных вложений в обновление основных фондов, что в будущем приводит к износу активов и как следствие быстрому сокращению прибыли и дивидендов. На наш взгляд, дивидендная политика должна отвечать устойчивому развитию компании.&lt;br /&gt;&lt;br /&gt;На рынке распространена практика перекрестного владения. Это ситуация, когда у женщины эмитента есть привилегированные акции, находящиеся на руках у сторонних акционеров. Они не имеют права голоса, но получают стабильные&lt;br /&gt;небольшие дивиденды. Поэтому инвесторы любят, когда у эмитента нет привилегированных акций. Кстати, многие мужчины любят иметь акции нескольких эмитентов в портфеле: контрольный пакет одного эмитента и небольшой процент привилегированных акций других эмитентов. Это один из парадоксов рынка.&lt;br /&gt;&lt;br /&gt;Если IPO проходят неудачно и не удается разместить контрольный пакет сразу, акции женщины-эмитента попадают на биржу. Здесь и начинается самое интересное. Наиболее ликвидные женщины-эмитенты торгуются на "биржах", они прошли листинг, информация о них известна инвесторам. Данные по этим компаниям можно найти даже в интернете, у них есть свои сайты. Однако, это не означает, что их акции могут показать сильный рост, так как многие из них переоценены рынком. Скорее инвесторы предпочитают спекулировать ими, избегая долгосрочных инвестиций.&lt;br /&gt;&lt;br /&gt;Наиболее ценными представляются бумаги "второго эшелона". Это как раз и есть акции роста. О них знает лишь некоторый круг игроков, и они покупаются стратегическими инвесторами. Тут им не обойтись без аналитической поддержки, так как нужно рассчитать справедливую стоимость акций, узнать кто основные акционеры и т.д.&lt;br /&gt;&lt;br /&gt;Серьезным вопросом владельца эмитента является создание дочерних предприятий. На начальных этапах работы "дочек" это прямые затраты для головного предприятия, причем без гарантированного экономического эффекта в будущем. Однако, это может улучшить инвестиционный климат и отношения эмитент-инвестор. Наличие дочерних предприятий также понижает ликвидность эмитента, что хорошо, когда инвестор хочет добрать с рынка пакеты миноритариев. Инвесторы любят составлять индексы на основании котировок женщин-эмитентов, чтобы представлять общую ситуацию на рынке. Именно отсюда и пошли фразы вроде "в таком-то месте (городе, стране) эмитенты самые красивые".&lt;br /&gt;&lt;br /&gt;Российский рынок считается в мире одним из наиболее привлекательных и недооцененных. Капитализация эмитентов здесь не очень большая, зато по фундаментальным показателям (прибыль на акцию, дивидендная доходность и т.д.) они сильнее зарубежных аналогов. Этим объясняется значительный интерес иностранных инвесторов к российским активам. Инвесторы любят обсуждать эмитентов, делиться своими соображениями о рынке, обмениваться опытом. Поскольку это обычно происходит "на рынке", одновременно идет изучение потенциальных объектов инвестирования. Это важно для инвесторов-новичков,так как они склонны покупать распиаренный неликвид.&lt;br /&gt;&lt;br /&gt;Значительная часть инвесторов расстается с контрольным пакетом эмитента через несколько лет, и перекладывается в быстро растущие акции молодых компаний. Это связано с большими транзакционными издержками, но инвесторы идут на них в надежде на хорошую отдачу от новых инвестиций. В любом случае, это рискованный шаг, так как инвестор отказывается от стабильного дохода и прозрачного бизнеса в пользу нового малоизвестного ему эмитента. На наш взгляд, нужно быть абсолютно уверенным в необходимости "перетряски инвестиционного портфеля" прежде чем ее затевать.&lt;br /&gt;&lt;br /&gt;Основные советы инвесторам.&lt;br /&gt;&lt;br /&gt;Не увлекайтесь спекуляциями на рынке, это может быть разорительно.&lt;br /&gt;&lt;br /&gt;Не вкладывайте сразу все средства в одного эмитента. Это рискованно.&lt;br /&gt;&lt;br /&gt;Не доверяйте на 100% рекомендациям аналитиков. Обязательно проводите свою, хотя бы минимальную оценку.&lt;br /&gt;&lt;br /&gt;Купив контрольный пакет акций эмитента, не расслабляйтесь. Всегда есть вероятность проведения дополнительной эмиссии, что приведет к разводнению вашей доли.&lt;br /&gt;&lt;br /&gt;Женщины любят давать свои акции в номинальное держание. Убедитесь, что акции действительно оказались на вашем счете.&lt;br /&gt;&lt;br /&gt;Купив контрольный пакет, не скупитесь на капитальные вложения и значительные амортизационные отчисления. Чем они больше, тем на большие дивиденды вы можете рассчитывать в будущем. Скупку контрольного пакета лучше проводить&lt;br /&gt;так, чтобы рынок этого "не видел", иначе есть риск сильно задрать котировки и переплатить.&lt;br /&gt;&lt;br /&gt;И еще: финансисткам на заметку&lt;br /&gt;Исходные предпосылки инвестиций в мужчину.&lt;br /&gt;&lt;br /&gt;Как не существует идеального инвестиционного инструмента, так и не&lt;br /&gt;существует идеального мужчины.&lt;br /&gt;&lt;br /&gt;Все мужчины, как и инвестиционные инструменты, обладают тремя важнейшими характеристиками: надежность; ликвидность; доходность.&lt;br /&gt;Hадежные мужчины, как правило, имеют низкую доходность. Мужчины с большими доходами ненадежны. Hенадежные мужчины с низкой доходностью не ликвидны. От них очень сложно избавиться. Hадежные и доходные мужчины обладают очень&lt;br /&gt;высокой ликвидностью. Проблема в том, что их сложно найти и еще труднее удержать в своем инвестиционном портфеле.&lt;br /&gt;&lt;br /&gt;Высокий спрос на надежных и высокодоходных мужчин приводит (иногда внезапно), к тому, что они теряют или свою надежность, или свою доходность.&lt;br /&gt;Как говорят - бумага испортилась.&lt;br /&gt;&lt;br /&gt;Диверсифицируйте. Во избежание больших жизненных дродаунов при разумной доходности рекомендуется порядка 70% времени вкладывать в надежных низкодоходных мужчин, 25% в нескольких высокодоходных, но ненадежных и не&lt;br /&gt;более 5% в надежных и высокодоходных (см. п. 7)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Если вам предоставилась возможность приобрести контрольный пакет надежного и высокодоходного мужчины, значит вы чего-то не заметили.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://users.livejournal.com/sulico_/943.html"&gt;Скопировал&lt;/a&gt;, а &lt;a href="http://www.petrosian.ru/readblog.php?seltable=1&amp;amp;article=1261"&gt;нашел&lt;/a&gt; через блог интересного человека(&lt;a href="http://www.petrosian.ru/index.php?cat=17"&gt;с интереснейшими мыслями&lt;/a&gt;)&lt;br /&gt;Занимательное сравнение, интересны мысли о господина &lt;a href="http://ariu.berdyansk.net/departments/finans/prepod.htm"&gt;Жигиря А.А.&lt;/a&gt; :)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/%D1%81%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BB" rel="tag"&gt;скопировал&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BE%20%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B5" rel="tag"&gt;о женщине&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5%20%D0%B1%D0%BB%D0%BE%D0%B3%D0%B8" rel="tag"&gt;интересные блоги&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%B8%D0%BD%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5%20%D0%BB%D1%8E%D0%B4%D0%B8" rel="tag"&gt;инересные люди&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;powered by &lt;a href="http://performancing.com/firefox"&gt;performancing firefox&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115372966241019209?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115372966241019209/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115372966241019209' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115372966241019209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115372966241019209'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/blog-post_115372966241019209.html' title='Почему женщина - акционерное общество?'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115271871608503441</id><published>2006-07-12T18:38:00.000+03:00</published><updated>2006-07-13T10:38:25.266+03:00</updated><title type='text'>IBM и Yahoo! за Drupal</title><content type='html'>&lt;a href="http://pingv.com/blog/laura/200607/big-blue-drop-ibm-goes-with-drupal"&gt;Big Blue Drop: IBM goes with Drupal pingVision&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Весьма интересно, что для воображаемого web-проекта IBM Internet Technology&lt;br /&gt;Group выбирает &lt;a href="http://drupal.org"&gt;Drupal&lt;/a&gt;, чтобы "&lt;a href="http://www-128.ibm.com/developerworks/ibm/library/i-osource1/index.html?ca=drs-"&gt;facilitate&lt;br /&gt;Using open source software to design, develop, and deploy a collaborative Web&lt;br /&gt;site&lt;/a&gt;" [&lt;i&gt;продвигать использование opensource ПО для проектирования, разработки и развертывания общего(их) web-сайта&lt;/i&gt;]&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Они сравнивают Drupal c другими CMS:&lt;br /&gt;&lt;/p&gt;&lt;a href="http://photos1.blogger.com/blogger/6102/1585/1600/cms_requirements.gif"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6102/1585/400/cms_requirements.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6102/1585/1600/cms_comparison.gif"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/6102/1585/400/cms_comparison.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;... и выбор однозначен.&lt;br /&gt;&lt;br /&gt;В апреле прошлого года, &lt;a href="http://yahoo.com"&gt;Yahoo!&lt;/a&gt; тоже &lt;a href="http://www.boxesandarrows.com/view/implementing_a_pattern_library_in_the_real_world_a_yahoo_case_study"&gt;проводила исследование&lt;/a&gt;, в результате которого был сделан следующий вывод:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Ultimately, we chose Drupal because of its breadth of capabilities, powerful taxonomy, and extensibility [в конечном счете мы выбрали Drupal, из-за широты возможностей, мощной таксономии и расширяемости]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;Мои закладки по теме:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/areus/drupal"&gt;drupal&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://del.icio.us/areus/cms"&gt;cms&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/drupal" rel="tag"&gt;drupal&lt;/a&gt;, &lt;a href="http://technorati.com/tag/webdev" rel="tag"&gt;webdev&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cms" rel="tag"&gt;cms&lt;/a&gt;, &lt;a href="http://technorati.com/tag/overview" rel="tag"&gt;overview&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ibm" rel="tag"&gt;ibm&lt;/a&gt;, &lt;a href="http://technorati.com/tag/yahoo" rel="tag"&gt;yahoo&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115271871608503441?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115271871608503441/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115271871608503441' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115271871608503441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115271871608503441'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/ibm-yahoo-drupal.html' title='IBM и Yahoo! за Drupal'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-115252313834457645</id><published>2006-07-10T13:15:00.000+03:00</published><updated>2006-07-10T12:18:58.350+03:00</updated><title type='text'>Блог не умер, блог жив</title><content type='html'>&lt;P&gt;Блог будет жить!!&lt;br/&gt;Просто переезд в Киев, смена работы, переосмысливания с этим всем связанные,&amp;nbsp;не давали достаточно времени для заметок.&lt;br/&gt;От Linux я немного удалился, на &lt;A href="http://amerigo.com.ua/" target=_blank&gt;моей новой работе&lt;/A&gt;&amp;nbsp;мне приходится работать с&amp;nbsp;Microsoft Win2k3(&lt;A href="http://www.microsoft.com/sql/default.mspx"&gt;MSSQL&lt;/A&gt;) и &lt;A href="http://www.freebsd.org/"&gt;FreeBSD&lt;/A&gt;, кроме того, поддержка web-сайта тоже в моей компетенции, а это &lt;A title="Hypertext Preprocessor" href="http://www.php.net/"&gt;PHP5&lt;/A&gt; и &lt;A href="http://dev.mysql.com/"&gt;MySQL&lt;/A&gt; (осваиваю новомодный &lt;A title="Asynchronous JavaScript and XML" href="http://ru.wikipedia.org/wiki/AJAX" target=_blank&gt;AJAX&lt;/A&gt;). Работаю уже третий месяц, очень нравится. Кроме всего прочего, углубленно &lt;A href="http://ru.diveintopython.org/toc.html"&gt;изучаю Python&lt;/A&gt; и &lt;A href="http://www.djangoproject.com/"&gt;Django&lt;/A&gt;. Со вчера &lt;A href="http://www.last.fm/user/arreus"&gt;начал использовать&lt;/A&gt; еще один &lt;A title="A free service that tracks your musical taste, finds similar users, and provides musical recommendations and free personalised radio" href="http://www.last.fm/"&gt;социальный сервис&lt;/A&gt;.&lt;br/&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-115252313834457645?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/115252313834457645/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=115252313834457645' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115252313834457645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/115252313834457645'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/07/blog-post.html' title='Блог не умер, блог жив'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114355927809285650</id><published>2006-03-28T17:53:00.000+03:00</published><updated>2006-03-28T18:23:02.396+03:00</updated><title type='text'>Ликбез: Folksonomies – Cooperative Classification and Communication Through Shared Metadata по-русски</title><content type='html'>&lt;a href="http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BB%D0%BA%D1%81%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F"&gt;Фолксономии&lt;/a&gt; - что же стоит за этим замысловатым названием? Примем участие в развитии &lt;a href="http://del.icio.us/areus/semweb"&gt;семантической сети&lt;/a&gt; будущего.. :)&lt;br /&gt;&lt;a href="http://pixel-apes.com/in/read-only/by/mendokusee/9719"&gt;Folksonomy — народ у руля классификации:&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;h3&gt; Ограничения фольксономий &lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol type="1"&gt;&lt;li&gt; &lt;strong&gt;Неоднозначность&lt;/strong&gt;. За&amp;nbsp;словом ANT&amp;nbsp;может скрывать полтора десятка разных акронимов или&amp;nbsp;безобидный муравей. Или&amp;nbsp;Apache Ant&amp;nbsp;Project. Фильтрация может касаться очистки водки, а&amp;nbsp;может быть про&amp;nbsp;Байеса. Совершенно разные предметные домены смешиваются в&amp;nbsp;одном «таге» — слове.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Пробелы и&amp;nbsp;фразы&lt;/strong&gt;. Оба&amp;nbsp;сервиса работают с&amp;nbsp;односложными тагами. Делишез даже пробелы запрещает. Чтобы ввести как&amp;nbsp;бы&amp;nbsp;иерархию пользователь может писать понятия через слэши, но&amp;nbsp;эта иерархия глубоко условна.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Синонимы&lt;/strong&gt;. Их&amp;nbsp;нет. В&amp;nbsp;смысле, в&amp;nbsp;обоих сервисах нет&amp;nbsp;никакого контроля за&amp;nbsp;синонимами. mac, macintosh, apple — три&amp;nbsp;совершенно несвязанных тага.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a name="h458-2"&gt;&lt;/a&gt;&lt;h3&gt; Преимущества фольксономий &lt;/h3&gt;&lt;br /&gt;&lt;ol type="1"&gt;&lt;li&gt; &lt;strong&gt;Навигация против поиска&lt;/strong&gt;. Как&amp;nbsp;навигацию я&amp;nbsp;здесь перевёл browsing. Есть два&amp;nbsp;фундаментально разных подхода к&amp;nbsp;поиску информации, и&amp;nbsp;мы говорим о&amp;nbsp;навигации путём последовательного перемещения по&amp;nbsp;ссылкам, которое здесь оказывается «&lt;nobr&gt;интуитивно-понятным&lt;/nobr&gt;». Система позволяет обнаруживать интересную информацию в&amp;nbsp;совершенно неожиданных местах, пользоваться опытом людей с&amp;nbsp;совершенно другими мозгами, но&amp;nbsp;которые искали примерно то&amp;nbsp;же.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Востребованный классификатор&lt;/strong&gt;. Прямое отражение словарного запаса пользователей — несомненное достоинство фольксономий. Это&amp;nbsp;они так&amp;nbsp;думают, потому что&amp;nbsp;к&amp;nbsp;ним гоблины ещё не&amp;nbsp;пришли =). Фольксономия кардинально отличается от&amp;nbsp;традиционного подхода к&amp;nbsp;классификации, потому что&amp;nbsp;представляет классификатор ровно в&amp;nbsp;том виде, в&amp;nbsp;котором он&amp;nbsp;востребован большой массой пользователей.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a name="h458-3"&gt;&lt;/a&gt;&lt;h3&gt; Почему фольксономии работают &lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol type="1"&gt;&lt;li&gt; &lt;strong&gt;Барьер на&amp;nbsp;вхождение, когнитивная стоимость&lt;/strong&gt;. Барьеры на&amp;nbsp;вхождение снимаются, поскольку для&amp;nbsp;начала работы (классифицирования) не&amp;nbsp;нужно обладать знанием о&amp;nbsp;существующем классификаторе. Участвовать может каждый, потому что&amp;nbsp;это просто.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;Обратная связь и&amp;nbsp;асимметричная коммуникация&lt;/strong&gt;. Обратная связь от&amp;nbsp;пользования фольксономией мгновенна. После того, как&amp;nbsp;вы&amp;nbsp;назначили объекту таг, вы&amp;nbsp;тут же&amp;nbsp;видите, что&amp;nbsp;ещё помечено другими людьми тем&amp;nbsp;же&amp;nbsp;тагом, сколько людей пометили этот объект и&amp;nbsp;как ваши таги пересекаются. Вы&amp;nbsp;можете подогнать свои таги — или&amp;nbsp;наоборот повлиять на&amp;nbsp;групповую норму в&amp;nbsp;отношении тагов или&amp;nbsp;объектов. Такая обратная связь пыриводит к&amp;nbsp;асимметричной коммуникации между пользователями посредством метаданных.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Про фолксономии уже &lt;a href="http://paxoblog.blogspot.com/2005/11/rss-ajax-python-flickr.html"&gt;писал&lt;/a&gt;, испульзую обе системы более полугода: и &lt;a href="http://del.icio.us/areus"&gt;букмарки&lt;/a&gt;, и &lt;a href="http://flickr.com/photos/pak/"&gt;картинки&lt;/a&gt;. &lt;a href="http://del.icio.us/help/tagrolls"&gt;Тэгролл&lt;/a&gt; слева, равно как и &lt;a href="http://www.flickr.com/badge_new.gne"&gt;flickr-badge&lt;/a&gt; являются результатом этого использования(генерятся автоматически, - потребовалось лишь подправить шаблон &lt;a href="http://blogger.com"&gt;blogger&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/del.icio.us" rel="tag"&gt;del.icio.us&lt;/a&gt;, &lt;a href="http://technorati.com/tag/flickr" rel="tag"&gt;flickr&lt;/a&gt;, &lt;a href="http://technorati.com/tag/фолксономии" rel="tag"&gt;фолксономии&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114355927809285650?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114355927809285650/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114355927809285650' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114355927809285650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114355927809285650'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/folksonomies-cooperative.html' title='Ликбез: Folksonomies – Cooperative Classification and Communication Through Shared Metadata по-русски'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114320691069128582</id><published>2006-03-24T15:17:00.000+02:00</published><updated>2006-08-05T14:15:42.913+03:00</updated><title type='text'>Выдержка из .bashrc</title><content type='html'>Приведу выдержку из ~/.bashrc с &lt;a href="http://bstport.berdyansk.net"&gt;internet-сервера&lt;/a&gt; под управлением &lt;a href="http://fedora.redhat.com/"&gt;fc4&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; hg&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'history|grep'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; hgi&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'history|grep -i'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tm&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/messages'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tmg&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/messages|grep -i'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#squid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tsal&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/squid/access.log'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tsalg&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/squid/access.log|grep '&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#qmail&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tql&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/qmail/smtpd/current |/usr/local/bin/tai64nlocal'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; tpl&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'tail -f /var/log/qmail/qmail-pop3d/current |/usr/local/bin/tai64nlocal'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#iptables&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptw&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'watch iptables -nvL '&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptL&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'iptables -nvL'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptS&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'iptables-save'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptSs&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'iptables-save &gt; ~/iptables.before.`date +%s` &amp;amp;&amp;  ll ~/iptables.before.`date +%s`'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptSg&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'iptS|grep -i'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;alias&lt;/span&gt; iptR&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;'iptables-restore'&lt;/span&gt;&lt;br /&gt;complete -W &lt;span style="color: rgb(0, 0, 230);"&gt;"{point,sirius,local}{_in,_out} INPUT OUTPUT FORWARD PREROUTING POSTROUTING"&lt;/span&gt; iptables iptL iptw&lt;br /&gt;complete -W  &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="background: rgb(255, 255, 232) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;`chkconfig  --list&lt;/span&gt;&lt;span style="background: rgb(255, 255, 232) none repeat scroll 0% 50%; color: rgb(227, 74, 220); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;|&lt;/span&gt;&lt;span style="background: rgb(255, 255, 232) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;awk &lt;/span&gt;&lt;span style="background: rgb(255, 255, 232) none repeat scroll 0% 50%; color: rgb(0, 0, 230); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;'{print $1}'&lt;/span&gt;&lt;span style="background: rgb(255, 255, 232) none repeat scroll 0% 50%; color: rgb(0, 0, 0); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;`&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt; service&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#для сохранения даты и времени&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;export&lt;/span&gt; HISTTIMEFORMAT&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"%F %T "&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#сколько строк хранить в истории&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;export&lt;/span&gt; HISTSIZE&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;100000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;export&lt;/span&gt; HISTFILESIZE&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;100000&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Почти все придумано мною, после прочтения материалов, написанных мудрыми юниксоидами..&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt;, &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://technorati.com/tag/unix" rel="tag"&gt;unix&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114320691069128582?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114320691069128582/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114320691069128582' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114320691069128582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114320691069128582'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/bashrc.html' title='Выдержка из .bashrc'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114311310932236114</id><published>2006-03-23T12:53:00.000+02:00</published><updated>2006-03-24T14:51:42.390+02:00</updated><title type='text'>Far  - швейцарский нож админа</title><content type='html'>Многие плагины могут быть вызваны из командной строки, используя соответсвующий префикс, немного примеров:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;plist:&lt;/span&gt;\\win_server - ProcList(std)&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;reg:&lt;/span&gt;\\win_server - &lt;a href="http://plugring.farmanager.com/cgi-bin/downld.cgi?Draw=List&amp;Sort=Date&amp;amp;SelectCateg=Addons&amp;Select=PlugIn&amp;amp;SelectPlugIn=30&amp;SelectAuthor=0&amp;amp;SelectOther=1&amp;SearchText="&gt;FarReg&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;svc:&lt;/span&gt;\\win_server - &lt;a href="http://plugring.farmanager.com/cgi-bin/downld.cgi?Draw=List&amp;amp;Sort=Date&amp;SelectCateg=Addons&amp;amp;Select=PlugIn&amp;SelectPlugIn=170&amp;amp;SelectAuthor=0&amp;SelectOther=1&amp;amp;SearchText="&gt;FarSvc&lt;/a&gt;&lt;br /&gt;net:\\win_or_samba_server - Network(std)&lt;br /&gt;ftp://user:passwd@ftp_server - FTP(std)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;Комментарий от 200603241341&lt;/span&gt;: &lt;br /&gt;Для успешного подключения к удаленным хостам, используя префиксы &lt;span style="font-weight:bold;"&gt;plist:&lt;/span&gt; и &lt;span style="font-weight:bold;"&gt;reg:&lt;/span&gt; , требуется запущенная "Служба удаленного управления реестром"(RemoteRegistry). Опросить удаленно статус службы, равно как и запустить ее, можно с помощью утилиты &lt;span style="font-style:bold;"&gt;sc&lt;/span&gt;(Service Control). В моем случае:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;F:\Program Files\Far&gt;sc \\bspserver query remoteregistry&lt;br /&gt;&lt;br /&gt;SERVICE_NAME: remoteregistry&lt;br /&gt;        TYPE               : 10  WIN32_OWN_PROCESS&lt;br /&gt;        STATE              : 4  RUNNING&lt;br /&gt;                                (STOPPABLE,NOT_PAUSABLE,&lt;br /&gt;                                   IGNORES_SHUTDOWN)&lt;br /&gt;        WIN32_EXIT_CODE    : 0  (0x0)&lt;br /&gt;        SERVICE_EXIT_CODE  : 0  (0x0)&lt;br /&gt;        CHECKPOINT         : 0x0&lt;br /&gt;        WAIT_HINT          : 0x0&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Это весьма удобно(мы имеем возможность быстро подсоединяться к любой машине домена, имея права, конечно же), но будет еще более удобней, если определить синонимы, используя &lt;a href="http://plugring.farmanager.com/cgi-bin/downld.cgi?Draw=List&amp;Sort=Date&amp;amp;SelectCateg=Addons&amp;Select=PlugIn&amp;amp;SelectPlugIn=453&amp;SelectAuthor=0&amp;amp;SelectOther=1&amp;SearchText="&gt;Named Folders&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt; Команда  cd::abc::x&lt;br /&gt;           позволяет создать псевдоним x для директории эмулируемой&lt;br /&gt;           файловой панели другого плагина.&lt;br /&gt;           abc - префикс, который открывает этот плагин,&lt;br /&gt;           например, "ftp://ftp.rarlab.com/", "reg:" и т.д.)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Как я использую:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Определил:&lt;br /&gt;psbsp-&gt;plist:\\bspserver&lt;br /&gt;psi5-&gt;plist:\\ivc005&lt;br /&gt;regbsp-&gt;reg:\\bspserver&lt;br /&gt;scbsp-&gt;svc:\\bspserver&lt;br /&gt;sci5-&gt;svc:\\ivc005&lt;br /&gt;bspc-&gt;\\bspserver\c$&lt;br /&gt;bspe-&gt;\\bspserver\e$&lt;br /&gt;bspsc-&gt;svc:\\bspserver&lt;br /&gt;bspps-&gt;plist:\\bspserver&lt;br /&gt;...&lt;br /&gt;Вызываю следующим образом:&lt;br /&gt;cd:ps - выпадает меню&lt;br /&gt;cd:scbsp - управляю службами на \\bspserver&lt;br /&gt;cd:bsp - снова меню, но уже помощнее..&lt;br /&gt;cd:bspd\home\dron - аналог команды &lt;span style="font-style:italic;"&gt;cd \\bspserver\d$\home\dron&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Хотелось бы заметить, что использую я &lt;a href="http://www.rammus.ru/dl.php?file=nf1_4_8"&gt;NamedFolders версии 1.48&lt;/a&gt;, потому как размер актуальной версии (365 Kб) меня пугает(вероятно, размер определяется используемым компилятором, а новая M$VS увеличила его на порядок - с 39Кб до 365 Кб), к тому же версия опубликованная на &lt;a href="http://plugring.farmanager.com"&gt;far-plugring&lt;/a&gt;, у меня не работала в принципе, фар выругался на ошибку загрузки модуля.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/far" rel="tag"&gt;far&lt;/a&gt;, &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://technorati.com/tag/namedfolders" rel="tag"&gt;namedfolders&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114311310932236114?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114311310932236114/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114311310932236114' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114311310932236114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114311310932236114'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/far_23.html' title='Far  - швейцарский нож админа'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114311076216727371</id><published>2006-03-23T12:26:00.000+02:00</published><updated>2006-03-23T12:50:08.183+02:00</updated><title type='text'>Мои скрипты: Squid Cache Client(scc.pl)</title><content type='html'>Это мой втрой по счету сценарий написанный на тогда еще не знакомом perl.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#@description: simple squid-cache client v1.0b&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#@author: areus/at/users.sf.net&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#@date: 20030719&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;use&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;strict&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;use&lt;/span&gt; &lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;IO::Socket&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;use&lt;/span&gt; &lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;Getopt::Std&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#main&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;unless&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;@ARGV&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;do_print_usage&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; %option &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;getopts&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"hs:alDo:"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;\&lt;/span&gt;%option&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $verbous &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; $option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;D&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;o&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"-"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;unless&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;defined&lt;/span&gt; $option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;o&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;open&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;STDOUT&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$option&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;{o}"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;or&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;die&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Can't open &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$option&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;{o} for output: $!&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;a&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;do_print_all_stat&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;l&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;do_enum_stat_names&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"s"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; do_squid_cache_request&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"s"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$option&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"h"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;do_print_usage&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;exit&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#end of main&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;do_get_request &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$sock&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $query&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; @_&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;die&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Fatal: no open socket"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;unless&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$sock&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  $query &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"GET &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$query&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; HTTP/&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;1.0&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $response&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;warn&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Sending request [&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$query&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;]"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; $verbous&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; $sock &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$query&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  $response&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;$_ &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;while&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;$sock&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$header&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $content&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;split&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $response&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$content&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;do_squid_cache_request &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $sock &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; open_socket&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3128&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"localhost"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"TCP"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;die&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Fatal: Couldn't connect to squid"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;unless&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$sock&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $resp &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;br /&gt; do_get_request&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$sock&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"cache_object://localhost/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$_&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;]"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;close&lt;/span&gt; $sock&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt; $resp&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;open_socket &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$port&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $dest&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $proto&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; @_&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $remote_sock &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(187, 121, 119); font-weight: bold;"&gt;IO::Socket&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;:&lt;/span&gt;INET&lt;span style="color: rgb(128, 128, 48);"&gt;-&gt;&lt;/span&gt;new&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;br /&gt;                  Proto     &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; $proto&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;                  PeerAddr  &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; $dest&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;                  PeerPort  &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; $port&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;                  &lt;span style="color: rgb(105, 105, 105);"&gt;#TimeOut   =&gt; $timeout&lt;/span&gt;&lt;br /&gt;                  &lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;or&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Can't open connection to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;                    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$dest&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; port &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$port&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; because: $!&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;$remote_sock&lt;span style="color: rgb(128, 128, 48);"&gt;-&gt;&lt;/span&gt;autoflush&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; $remote_sock&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$remote_sock&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;do_print_all_stat &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $items &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; do_squid_cache_request &lt;span style="color: rgb(0, 0, 230);"&gt;"menu"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; @cols&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;foreach&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $row &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;split&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $items&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  @cols &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;split&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\t&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $row&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $cols&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$cols&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;~&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;m&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;i&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"*"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;x&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;20&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;*"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"*&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$_&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\t&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$cols&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"*"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;x&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;20&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;*"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;s&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;g&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; do_squid_cache_request&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$_&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;do_enum_stat_names &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $items &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; do_squid_cache_request &lt;span style="color: rgb(0, 0, 230);"&gt;"menu"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; @cols&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;foreach&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $row &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;split&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $items&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  @cols &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;split&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\t&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $row&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $cols&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$_&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\t&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$cols&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$cols&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;~&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;m&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;i&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sub &lt;/span&gt;do_print_usage &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;print&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"Usage: &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -h: this help&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -s &amp;lt;stat_name&gt;: print info only for &amp;lt;stat_name&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -l: list all avaible stat_names&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -a: print all stats&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -D: turn on debug-messages&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -o &amp;lt;outfile&gt;: output file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Examples:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -a -o all_cache_stat.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -s client_list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;$0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; -s info&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;--&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;bugs and suggestions to areus/at/users.sf.net&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Если вывод команды scc.pl "запайпить" на следующий сценарий:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;#rate_squid_clients.pl&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;use&lt;/span&gt; Socket&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$addr&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $name&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $http_req_count&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $cur_conn_count&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; %clients&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;while&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;^&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Address:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;   $addr &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $1&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;   $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;^&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Name:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;     $name &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $1&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;m&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Currently&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;established&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;connections:&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;$&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;       $cur_conn_count &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $1&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;       $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;       $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;HTTP&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Requests&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\s&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;\d&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;$&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;         $http_req_count &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; $1&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;         $_ &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     $iaddr &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; inet_aton&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$addr&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     $host  &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;gethostbyaddr&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;$iaddr&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; AF_INET&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     $addr&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;$host &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; $host&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(105, 105, 105);"&gt;#warn $addr;&lt;/span&gt;&lt;br /&gt;         @{$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$name&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;} &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;&lt;br /&gt;  (&lt;/span&gt;$addr&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $http_req_count&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $cur_conn_count&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;foreach&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;my&lt;/span&gt; $n &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;sort&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;       ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$b&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;=&gt;&lt;/span&gt; ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$a&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;                          &lt;span style="color: rgb(128, 128, 48);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;|&lt;/span&gt;&lt;br /&gt;       ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$b&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(64, 1, 90);"&gt;&amp;lt;=&gt;&lt;/span&gt; ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$a&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;keys&lt;/span&gt; %clients&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;printf&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 121, 151);"&gt;%16s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 121, 151);"&gt;%16s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 121, 151);"&gt;%10d&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 121, 151);"&gt;%4d&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; $n&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;               ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$n&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;br /&gt;  ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$n&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; ${$clients&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;$n&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;}&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;то получим примерно следующее:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ssc.pl -s client_list|./rate_squid_clients.pl |head -n 10&lt;br /&gt;192.168.100.183     snab006.bstp      11544    4&lt;br /&gt;192.168.100.223    admin002.bstp      28865    1&lt;br /&gt; 192.168.100.29      ivc009.bstp      12291    1&lt;br /&gt; 192.168.100.83      snab01.bstp       4473    1&lt;br /&gt; 192.168.100.25      ivc005.bstp      31936    0&lt;br /&gt;192.168.100.103      peo004.bstp      17186    0&lt;br /&gt;192.168.100.162    gmssb002.bstp      11771    0&lt;br /&gt; 192.168.100.11     pc10666.bstp      10812    0&lt;br /&gt;  192.168.100.6     pc10052.bstp       7589    0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;т.е. top-10 активно работающих машин.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;, &lt;a href="http://technorati.com/tag/squid" rel="tag"&gt;squid&lt;/a&gt;, &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://technorati.com/tag/perl" rel="tag"&gt;perl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114311076216727371?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114311076216727371/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114311076216727371' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114311076216727371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114311076216727371'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/squid-cache-clientsccpl.html' title='Мои скрипты: Squid Cache Client(scc.pl)'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114310846823444015</id><published>2006-03-23T11:46:00.000+02:00</published><updated>2006-03-28T17:48:39.040+03:00</updated><title type='text'>Мои скрипты: Folders Chart (fcex.js)</title><content type='html'>Этим постом открываю рубрику "Мои скрипты".&lt;br /&gt;Идея данного сценария родилась еще во время учебы в &lt;a href="http://ariu.berdyansk.net"&gt;ariu&lt;/a&gt; в 2001 году, тогда сценарий выглядел так:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;Set&lt;/span&gt; fso &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;CreateObject&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;Scripting.FileSystemObject&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;set&lt;/span&gt; fld&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;fso&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;getFolder&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;.&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;Set&lt;/span&gt; objXL &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; WScript&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;CreateObject&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;Excel.Application&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Workbooks&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Add&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;,&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;.Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;10&lt;/span&gt;&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;,&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;.Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;15&lt;/span&gt;&lt;br /&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for each&lt;/span&gt; f &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;in&lt;/span&gt; fld&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;subfolders&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i,&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;.Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; f&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;name&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i,&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;.Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; f&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;size&lt;br /&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;next&lt;/span&gt;&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Range&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;A:B&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;.Select&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Selection&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Sort objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Range&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;B1&lt;span style="color: rgb(128, 128, 48);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;Set&lt;/span&gt; objXLchart &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Charts&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Add&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;objXLchart&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Type &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;5&lt;/span&gt;&lt;br /&gt;objXL&lt;span style="color: rgb(0, 140, 0);"&gt;.&lt;/span&gt;Visible &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(15, 77, 117);"&gt;True&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Для удобства вызова я создал сценарий-обертку:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;::chartex.cmd&lt;br /&gt;cscript.exe "%ProgramFiles%\Far\bin\fcex.js"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Положил его в папку, которая находится в списке %PATH%. Теперь чтобы получить распределение занятого места в текущей папке, я набираю в командной строке &lt;span style="font-style: italic;"&gt;chartex&lt;/span&gt;. Итак код сценария:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//Folders Chart&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//dron@bcsp v1.1 200501121713&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//description: draws folder chart&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; nLevel&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; bDebug &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(15, 77, 117);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sStr&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;bDebug&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;WScript&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;echo&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sStr&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; MB &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1024&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1024&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; MARGIN &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; drawFolderChartEx&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oExcel&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; oFold&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; oFSO&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; oSh&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oFold&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Path&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; wb&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; sh&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; oFld&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; sName&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;with&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oExcel&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  wb &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Workbooks&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Count &lt;span style="color: rgb(128, 128, 48);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;?&lt;/span&gt;Workbooks&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Add&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;:&lt;/span&gt;ActiveWorkbook&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  sh &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; wb&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;WorkSheets&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Add&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  sName &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; oFold&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Path&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;replace&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\\&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;g&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"_"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sName&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;length &lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;30&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;     sName &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; sName&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;replace&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;{27}&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;$&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;/&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"...$1"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sName&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Name&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; sName&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  Application&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;DisplayAlerts &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  Visible &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; s&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; i&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"'Checking."&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; e &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; Enumerator&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oFold&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Files&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;           !e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;atEnd&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;           e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;moveNext&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;    s&lt;span style="color: rgb(128, 128, 48);"&gt;+=&lt;/span&gt;e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;item&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Size&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;+=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"."&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"'."&lt;/span&gt;&lt;br /&gt;  Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;/*parseInt(*/&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;MB&lt;span style="color: rgb(105, 105, 105);"&gt;/*)*/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;FormulaR1C1 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"=R[0]C[-1]/R1C4"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(105, 105, 105);"&gt;//i = 2;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; e &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; Enumerator&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oFold&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;SubFolders&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;           !e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;atEnd&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;           e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;moveNext&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;try&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;      Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"'"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;item&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Name&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(105, 105, 105);"&gt;/*parseInt(*/&lt;/span&gt;e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;item&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Size&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;MB&lt;span style="color: rgb(105, 105, 105);"&gt;/*)*/&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;FormulaR1C1 &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"=R[0]C[-1]/R1C4"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      s&lt;span style="color: rgb(128, 128, 48);"&gt;+=&lt;/span&gt;e&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;item&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Size&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;ex&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; s&lt;span style="color: rgb(128, 128, 48);"&gt;/&lt;/span&gt;MB&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Range&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"A:B"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Select&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  Selection&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Sort&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Range&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"B1"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; oChart &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; Charts&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Add&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  oChart&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Type &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; j&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;lt;&lt;/span&gt;i&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;++&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; MARGIN &lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&amp;amp;&lt;/span&gt; sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"."&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;        debug&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"recursive call: "&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;&lt;br /&gt;  " level: "&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;++&lt;/span&gt;nLevel&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;        oFld &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; oFSO&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;GetFolder&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oFold&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Path &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\\&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;        sh&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Cells&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;j&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Value &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; oFld&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;Path&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;        drawFolderChartEx&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oExcel&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;oFld&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt;oFSO&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;        nLevel&lt;span style="color: rgb(128, 128, 48);"&gt;--&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; oFSO &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; ActiveXObject&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Scripting.FileSystemObject"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; oFold &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; oFSO&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;GetFolder&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"."&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;var&lt;/span&gt; oExcel &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; ActiveXObject&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;"Excel.Application"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;drawFolderChartEx&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;oExcel&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; oFold&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; oFSO&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Сценарий рекурсивно будет чертить график распределения по текущей и каждой дочерней подпапки, размер которой составляет более  MARGIN % родительской папки.&lt;br /&gt;&lt;br /&gt;У меня это выглядит так:&lt;br /&gt;&lt;style type="text/css"&gt;.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/pak/119308033/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/49/119308033_c872021daf.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/wsh" rel="tag"&gt;wsh&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BC%D0%BE%D0%B8+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" rel="tag"&gt;мои+скрипты&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114310846823444015?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114310846823444015/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114310846823444015' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114310846823444015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114310846823444015'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/folders-chart-fcexjs.html' title='Мои скрипты: Folders Chart (fcex.js)'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114310473931216318</id><published>2006-03-23T10:59:00.000+02:00</published><updated>2006-03-23T14:18:36.130+02:00</updated><title type='text'>И снова про Far</title><content type='html'>Сегодня день моего увольнения из &lt;a href="http://bstport.berdyansk.net"&gt;Бердянского Морского Торгового Порта&lt;/a&gt;. Позавчера решил все-таки установить Windows(не пропадать же лицензии), к слову, как раз в это время, год назад, я установил &lt;a href="http://www.novell.com/products/linuxenterpriseserver/"&gt;SLES9&lt;/a&gt;, после месячной работы, заказал  &lt;a href="http://www.altlinux.ru"&gt;ALT-Linux&lt;/a&gt; на &lt;a href="http://lafox.net"&gt;lafox.net&lt;/a&gt;, и вскоре окончательно снес Windows. Окончательный мой выбор пал на &lt;a href="http://www.novell.com/linux/suse/"&gt;Novell Suse Linux&lt;/a&gt; - до сих пор считаю его лучшим пользовательским дистрибутивом. Работая в разных дистрибутивах, я выяснил для себя, что возможность тотальной перенастройки/настройки всего и вся в linux весьма губительна, по крайней мере для меня... К тому же, ceteris paribus, &lt;a href="http://mozilla.org"&gt;огнелис&lt;/a&gt; работает в РАЗЫ медленнее(уповаю на субъективность) при одинаковых наборах расширений. Чего мне всегда не хватало, так это &lt;a href="http://www.farmanager.com"&gt;Far&lt;/a&gt;'а, точнее даже его редактора, с &lt;a href="http://colorer.sf.net"&gt;colorer&lt;/a&gt;'ом true-templatе'ом extsearch'ем, c Ctrl+[, с Shift+Enter, и многими другими &lt;a href="http://farmanager.blogspot.com/#Editor"&gt;выдающимися способностями(типа сдвигов вертикальных помеченных блоков)&lt;/a&gt;. Да, я познакомился с &lt;a href="http://emacs.org"&gt;emacs&lt;/a&gt;, имею базовые понятия в &lt;a href="http://www.gnu.org/software/emacs/elisp/"&gt;elisp&lt;/a&gt;, но лучшим для меня по сей день является именно редактор Far. Некоторое время назад я уже &lt;a href="http://paxoblog.blogspot.com/2006/01/colorer-linux.html"&gt;описывал&lt;/a&gt; свое использование colorer в Linux, в частности для генерации html кода, подсвечивающего синтаксис. Ранее я не замечал большинства возможностей супер-плагина, идущего в стандартной поставке - &lt;span style="font-style: italic;"&gt;FAR Commands&lt;/span&gt;. Так вот, сегодня представляю "порт" скрипта генерации подсветки под windows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;clip:&amp;lt;colorer.exe -dc -dh -h "filename"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Добавив команду в пользовательское меню(по F2),&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://img52.imageshack.us/img52/7967/clipcolorerfar3om.png"&gt;&lt;img style="width: 403px; height: 212px;" src="http://img52.imageshack.us/img52/7967/clipcolorerfar3om.png" /&gt;&lt;/a&gt;&lt;/div&gt; я немного упростил его вызов, к тому же так проще создать макрос.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/far" rel="tag"&gt;far&lt;/a&gt;, &lt;a href="http://technorati.com/tag/colorer" rel="tag"&gt;colorer&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D1%8F" rel="tag"&gt;улучшения&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114310473931216318?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114310473931216318/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114310473931216318' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114310473931216318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114310473931216318'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/far.html' title='И снова про Far'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113828319141085454</id><published>2006-03-22T15:46:00.000+02:00</published><updated>2006-03-22T15:09:35.693+02:00</updated><title type='text'>Microsoft Windows Management Interface (WMI)</title><content type='html'>Весьма содержательный ресурс, посвященный &lt;a href="http://www.wilsonmar.com/1wmiwbem.htm#winmgmtSvc"&gt;Microsoft Windows Management Interface (WMI)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/wmi" rel="tag"&gt;wmi&lt;/a&gt;, &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tag/quickref" rel="tag"&gt;quickref&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113828319141085454?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113828319141085454/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113828319141085454' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113828319141085454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113828319141085454'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/microsoft-windows-management-interface.html' title='Microsoft Windows Management Interface (WMI)'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114301475248505317</id><published>2006-03-22T10:05:00.003+02:00</published><updated>2006-03-22T16:08:44.180+02:00</updated><title type='text'>Нарисуйте мне bootchart, нарисуйте</title><content type='html'>&lt;a href="http://bootchart.org"&gt;Bootchart&lt;/a&gt;'ы, которые чертились мною в недавнее время:&lt;br /&gt;&lt;br /&gt;С &lt;a href="http://hardware.gamespot.com/Story-ST-4443-x-1-3-x"&gt;ноута&lt;/a&gt; (SuSE 9.3 Pro):&lt;br /&gt;&lt;style type="text/css"&gt;.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/pak/97830198/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/19/97830198_3707c2c79e.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/pak/97830198/"&gt;bootchart.paxn&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/pak/"&gt;andreipak&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;    &lt;p class="flickr-yourcomment"&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Моей рабочей машины (SuSE 9.3 Pro):&lt;br /&gt;&lt;style type="text/css"&gt;.flickr-photo { border: solid 2px #000000; }.flickr-yourcomment { }.flickr-frame { text-align: left; padding: 3px; }.flickr-caption { font-size: 0.8em; margin-top: 0px; }&lt;/style&gt;&lt;div class="flickr-frame"&gt; &lt;a href="http://www.flickr.com/photos/pak/97831110/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/39/97831110_e8feb188f3.jpg" class="flickr-photo" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/pak/97831110/"&gt;bootchart.tserver 18.10.2005&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/pak/"&gt;andreipak&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;    &lt;p class="flickr-yourcomment"&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;"Рендерилось" все это с помощью следующей "магической" команды:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;curl -vv --form format=png \ &lt;br /&gt;--form log=@/var/log/bootchart.tgz \ &lt;br /&gt;http://render.bootchart.org:8080/bootchart/render \ &lt;br /&gt;&gt; bootchart.`hostname`.png&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://curl.haxx.se/download.html"&gt;curl&lt;/a&gt; рулит :).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114301475248505317?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114301475248505317/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114301475248505317' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114301475248505317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114301475248505317'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/bootchart.html' title='Нарисуйте мне bootchart, нарисуйте'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114284264697129719</id><published>2006-03-20T10:15:00.000+02:00</published><updated>2006-03-20T10:17:27.266+02:00</updated><title type='text'>Cypress - блог о dotnet и других технологиях, включая monad</title><content type='html'>&lt;a href="http://dot-cypress.blogspot.com/"&gt;.Cypress&lt;/a&gt; &lt;br /&gt; &lt;blockquote&gt;Блог одного человечка, который считает себя программистом!&lt;/blockquote&gt;Довольно молодой и в то же время содержательный блог, посвященный Microsoft .Net и в частности C#. В одном из &lt;a href="http://dot-cypress.blogspot.com/2006/03/monad-links_13.html"&gt;постов&lt;/a&gt; с ссылками на ресурсы о революционном командном интерпретаторе от microsoft, была обнаружена интересная ссылка на русскоязычный&amp;nbsp; материал - &lt;a href="http://www.script-coding.info/Monad/Intro.html"&gt;Обзор Windows Monad Shell (часть 1)&lt;/a&gt;&lt;br /&gt;К слову, в конце февраля вышла уже &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=239a1116-c0f5-4320-84fc-2ad625ebb910&amp;amp;DisplayLang=en"&gt;beta-3&lt;/a&gt;, не за горами релиз, да и возможности shell под кодовым названием &lt;a href="http://en.wikipedia.org/wiki/MSH_%28shell%29"&gt;monad&lt;/a&gt;, действительно &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6387c46b-4753-4eaf-8d8b-368074f39ccc&amp;amp;displaylang=en"&gt;впечатляют&lt;/a&gt; - особенно тесная интеграция с ADSI, WMI и COM.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Дополнительные ссылки по теме&lt;/b&gt;:&lt;br /&gt;&lt;/i&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://del.icio.us/areus/monad"&gt;Мои закладки с тэгом 'monad'&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=25915"&gt;Video демонстрация от архитектора monad&lt;/a&gt;&lt;a name="mcspdone" href="http://channel9.msdn.com/ShowPost.aspx?PostID=25915"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://del.icio.us/popular/monad"&gt;Популярные ссылки с тэгом 'monad'&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/Monad_Prog/html/ced30e23-10af-4700-8933-49873bd84d58.asp"&gt;How MSH Works&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a title="Open this result in a new window" name="mcspdone" style="text-decoration: none;" target="_blank" href="http://channel9.msdn.com/ShowPost.aspx?PostID=25915"&gt;&lt;/a&gt;&lt;a href="http://www.coldie.net/project/jamsh"&gt;Monad/MSH written to feel less like a DOS Prompt and with vi-mode command line editing&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://mow001.blogspot.com/"&gt;/\/\o\/\/ on MSH (Monad) - много интересных примеров&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;a href="http://technorati.com/blogs/monad"&gt;Technorati: блоги по теме&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/monad" rel="tag"&gt;monad&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5+%D0%B1%D0%BB%D0%BE%D0%B3%D0%B8" rel="tag"&gt;интересные+блоги&lt;/a&gt;, &lt;a href="http://technorati.com/tag/dotnet" rel="tag"&gt;dotnet&lt;/a&gt;, &lt;a href="http://technorati.com/tag/shell" rel="tag"&gt;shell&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114284264697129719?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114284264697129719/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114284264697129719' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114284264697129719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114284264697129719'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/cypress-dotnet-monad.html' title='Cypress - блог о dotnet и других технологиях, включая monad'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114181598116864859</id><published>2006-03-08T13:05:00.000+02:00</published><updated>2006-03-08T14:43:15.586+02:00</updated><title type='text'>"Промениста Мрійкотвірка" від Psyshine</title><content type='html'>&lt;br/&gt;&lt;a href="http://www.psyzone.ru/party/fullnews.php?id=13" &gt;18.03.06 (Суббота) "Промениста Мрійкотвірка" від Psyshine - PsyZone.ru&lt;/a&gt; &lt;br/&gt; &lt;blockquote&gt;&lt;br /&gt;Після тривалого часу зануреного самоспоглядання повний наснаги Psyshine Records розпочинає свій новий сезон 2006. Приєднуйтесь до нашого свята весни і тепла на вечірці "Промениста Мрійкотвірка".&lt;br /&gt;...&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Діджеї&lt;/span&gt;:&lt;br /&gt;...&lt;br /&gt;Dimitro (Euphoria Promo, &lt;span style="font-style:italic;"&gt;Бердянськ&lt;/span&gt;)&lt;br /&gt;gree_shanti (Euphoria Promo, &lt;span style="font-style:italic;"&gt;Бердянськ&lt;/span&gt;) &lt;br /&gt;...&lt;br /&gt;Майте на увазі: Перші 50 осіб отримають на вході безкоштовно концентрований заряд бадьорості і піднесення&lt;br /&gt;(схвалено Міністерством охорони здоров'я України). &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;- цiкаво, що ж це за концентрований заряд?? :)&lt;br /&gt;&lt;br /&gt;А ще &lt;a href="http://psydimension.blogspot.com/"&gt;хлопець&lt;/a&gt;, що презентував цей лінк , надiслав лінк на дуже цiкаву книжку - &lt;a href="http://www.psyplanet.ru/culture-lib-talbot.shtml"&gt;МАЙКЛ ТАЛБОТ - "Голографическая вселенная"&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Если соединить теории Бома и Прибрама, мы получим радикально новый взгляд на мир: наш мозг математически конструирует объективную реальность путем обработки частот, пришедших из другого измерения – более глубокого порядка существования, находящегося за пределами пространства и времени. Мозг – это голограмма, свернутая в голографической вселенной.&lt;br /&gt;&lt;br /&gt;Для Прибрама данный синтез означал, что объективный мир не существует – по крайней мере в том виде, к которому мы привыкли. За пределами привычного мира находится огромный океан волн и частот, в то время как реальность выглядит вполне конкретной только благодаря тому, что наш мозг преобразует голографические пятна в палки, камни и другие знакомые объекты, составляющие наш мир. Как мозгу (который сам состоит из частот материи) удается из таких нематериальных сущностей, как частотное пятно, синтезировать нечто, кажущееся твердым на ощупь? «Математический процесс, который Бекеши смоделировал с помощью своих вибраторов, является основополагающим для понимания того, как наш мозг конструирует образ внешнего мира», – утверждает Прибрам [17]. Другими словами, гладкая поверхность фарфоровой чашки и ощущение песка на берегу под ногами на самом деле всего лишь утонченная версия синдрома фантомных болей.&lt;br /&gt;&lt;br /&gt;Согласно Прибраму, это не означает, что не существует фарфоровых чашек или песка на берегу. Это просто означает, что фарфоровая чашка имеет два совершенно различных аспекта своей реальности. Когда она пропускается через линзы вашего мозга, она проявляет себя как чашка. Но если снять эти линзы, мы ощутим ее как интерференционный паттерн. Какой из этих образов истинный, а какой ложный? «Истинны оба, – говорит Прибрам, – или, если хотите, оба ложны»&lt;br /&gt;...&lt;br /&gt;Если бы каждый из нас имел доступ к знаниям, накопленным всем человечеством и запрятанным в подсознании, мы все были бы ходячими энциклопедиями. Психолог Роберт Андерсон из Ренслерского политехнического института в г. Трой (штат Нью-Йорк) считает, что мы можем получать только ту информацию импликативного порядка, которая непосредственно связана с нашей памятью. Андерсон называет этот селективный процесс персональным резонансом и сравнивает его с вибрацией камертона, который будет входить в резонанс с другим камертоном, только если второй камертон имеет подобную структуру, форму и размеры. «Благодаря персональному резонансу сравнительно малое число из почти бесконечного набора "образов" импликативной голографической структуры вселенной доступны персональному сознанию человека, – говорит Андерсон, – поэтому, когда просветленные личности достигали единого сознания много столетий назад, они не писали теорию относительности, как Эйнштейн, а использовали свой опыт» [2].&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;читаю із превеликим захопленням.. До того ж на &lt;a href="http://www.psyplanet.ru/"&gt;сайті&lt;/a&gt; ще багато &lt;a href="http://www.psyplanet.ru/culture-lib.shtml"&gt;цікавих книжок&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/fun" rel="tag"&gt;fun&lt;/a&gt;, &lt;a href="http://technorati.com/tag/шутки" rel="tag"&gt;шутки&lt;/a&gt;, &lt;a href="http://technorati.com/tag/trance" rel="tag"&gt;trance&lt;/a&gt;, &lt;a href="http://technorati.com/tag/затосы" rel="tag"&gt;затосы&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ebooks" rel="tag"&gt;ebooks&lt;/a&gt;, &lt;a href="http://technorati.com/tag/эзотерика" rel="tag"&gt;эзотерика&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114181598116864859?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114181598116864859/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114181598116864859' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114181598116864859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114181598116864859'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/psyshine.html' title='&quot;Промениста Мрійкотвірка&quot; від Psyshine'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114172912574725793</id><published>2006-03-07T12:58:00.000+02:00</published><updated>2006-03-08T10:40:21.276+02:00</updated><title type='text'>Создан продукт Accelerated Knoppix, отличающийся значительно уменьшенным временем загрузки.</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;&lt;a href="http://www.opennet.ru/opennews/art.shtml?num=7040"&gt;OpenNews: Вышла версия Knoppix нацеленная на уменьшение времени загрузки&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;На базе LiveCD Knoppix создан продукт &lt;a href="http://www.alpha.co.jp/ac-knoppix/index_en.html"&gt;Accelerated Knoppix&lt;/a&gt;, отличающийся значительно уменьшенным временем загрузки.&lt;br /&gt;&lt;br /&gt;Оптимизировав скрипты для автоопределения типа оборудования и проведя корректировку блоков данных для файловой системы cloop, удалось сократить время загрузки до 60 секунд, что в два раза меньше стандартного Knoppix.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Вижу связь с другим &lt;a href="http://unit.aist.go.jp/itri/knoppix/index-en.html"&gt;японским приложением&lt;/a&gt;  &lt;a href="http://bootchart.org"&gt;bootchart&lt;/a&gt;'a к &lt;a href="http://knoppix.org"&gt;knoppix&lt;/a&gt;'у:&lt;br /&gt;kernel2.6 (512MB, BootTime 3:48)&lt;br /&gt;&lt;img src="http://unit.aist.go.jp/itri/knoppix/readahead/bootchart_512M-q.png" /&gt;&lt;br /&gt;kernel2.6 + readahead (512MB, BootTime 2:45)&lt;br /&gt;&lt;img src="http://unit.aist.go.jp/itri/knoppix/readahead/bootchart_512M_readahead-q.png" /&gt;&lt;br /&gt;&lt;br /&gt;Японцы &lt;a href="http://unit.aist.go.jp/itri/knoppix/readahead/index-en.html"&gt;ускоряют&lt;/a&gt; knoppix, и &lt;a href="http://unit.aist.go.jp/itri/knoppix/xen/index-en.html"&gt;изощряются&lt;/a&gt; с &lt;a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/"&gt;xen&lt;/a&gt;, создавая &lt;a href="http://unit.aist.go.jp/itri/knoppix/xen/index-en.html"&gt;Xenoppix&lt;/a&gt;'ы, которые позволяют грузить даже несколько гостевых ОС(&lt;a href="http://www.netbsd.org/"&gt;NetBSD&lt;/a&gt;, &lt;a href="http://www.cs.bell-labs.com/plan9dist/"&gt;Plan9&lt;/a&gt;) или &lt;a href="http://unit.aist.go.jp/itri/knoppix/colinux/index-en.html"&gt;грузить&lt;/a&gt; Knoppix из windows, используя &lt;a href="http://www.colinux.org/"&gt;coLinux&lt;/a&gt; в связке с &lt;a href="http://cygwin.org"&gt;cygwin/X&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/bootchart" rel="tag"&gt;bootchart&lt;/a&gt;, &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt;, &lt;a href="http://technorati.com/tag/knoppix" rel="tag"&gt;knoppix&lt;/a&gt;, &lt;a href="http://technorati.com/tag/speedup" rel="tag"&gt;speedup&lt;/a&gt;, &lt;a href="http://technorati.com/tag/visualisation" rel="tag"&gt;visualisation&lt;/a&gt;, &lt;a href="http://technorati.com/tag/japan" rel="tag"&gt;japan&lt;/a&gt;, &lt;a href="http://technorati.com/tag/colinux" rel="tag"&gt;colinux&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114172912574725793?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114172912574725793/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114172912574725793' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114172912574725793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114172912574725793'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/accelerated-knoppix_07.html' title='Создан продукт Accelerated Knoppix, отличающийся значительно уменьшенным временем загрузки.'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114171851094605242</id><published>2006-03-07T10:01:00.000+02:00</published><updated>2006-03-07T10:23:16.283+02:00</updated><title type='text'>Комплексное решение задачи управления трафиком Linux, iptables, iproute2, esfq, layer-7, geoip</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Просветился немного. Просто супер:&lt;br /&gt;&lt;a href="http://www.dzti.edu.lv/isp-serv/index.php?l=3"&gt;Знакомство с iptables и iproute2. Часть II. (комплексное решение задачи управления трафиком)&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;разделенине трафика на местный и зарубежный, iptables, geoip, csv2bin; iproute2;&lt;br /&gt;ограничение скачивания больших файлов, connbytes;&lt;br /&gt;разделение полосы поровну между IP-адресами, esfq;&lt;br /&gt;блокирование трафика bittorrent, edonkey, dc++ и др. P2P по контенту, layer-7&lt;br /&gt;...&lt;br /&gt;&lt;b&gt;ПОСТАНОВКА РЕШАЕМОЙ ЗАДАЧИ&lt;/b&gt;&lt;table cellpadding="3" cellspacing="3"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td width="100%"&gt;&lt;li&gt;Предоставить локальной сети (ЛВС) интернет (NAT сервер).&lt;br /&gt;  &lt;/li&gt;&lt;li&gt;Сделать местный трафик поступающий в локальную сеть не превышающим IN_RATE_LV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Сделать зарубежный трафик поступающий в локальную сеть не превышающим IN_RATE_NLV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Сделать местный трафик исходящий с NAT-сервер не превышающим OUT_RATE_LV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Сделать зарубежный трафик исходящий с NAT-сервер не превышающим OUT_RATE_NLV&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Полоса принадлежащая классу распределяется равномерно по IP-адресам (дисциплина обслуживания ESFQ)&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;От этого автора имеется &lt;a href="http://www.dzti.edu.lv/isp-serv/index.php?l=2"&gt;вводная часть по сетевым програмным пакетам iptables и iproute2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt;, &lt;a href="http://technorati.com/tag/traffic" rel="tag"&gt;traffic&lt;/a&gt;, &lt;a href="http://technorati.com/tag/iproute2" rel="tag"&gt;iproute2&lt;/a&gt;, &lt;a href="http://technorati.com/tag/iptables" rel="tag"&gt;iptables&lt;/a&gt;, &lt;a href="http://technorati.com/tag/route" rel="tag"&gt;route&lt;/a&gt;, &lt;a href="http://technorati.com/tag/qos" rel="tag"&gt;qos&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114171851094605242?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114171851094605242/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114171851094605242' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114171851094605242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114171851094605242'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/linux-iptables-iproute2-esfq-layer-7.html' title='Комплексное решение задачи управления трафиком Linux, iptables, iproute2, esfq, layer-7, geoip'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114171609578639852</id><published>2006-03-07T09:21:00.000+02:00</published><updated>2006-03-07T09:31:30.880+02:00</updated><title type='text'>LG#124: Создание многоместной Linux системы с 6-ю мониторами</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;&lt;a href="http://onorua.livejournal.com/1419.html"&gt;onorua: Создание многоместной Linux системы с 6-ю мониторами&lt;/a&gt; &lt;br /&gt;&lt;blockquote&gt;документ, рассказывает как создать многоместную, многопользовательскую Linux систему используя новейшее Linux ПО и стандартные USB мыши и клавиатуры. Xorg называет это - "многоместная" ("multi-seat") система.&lt;br /&gt;...&lt;br /&gt;Для создания 6-ти рабочих мест, вам так же нужна материнская плата с AGP слотом и 5 доступных PCI слотов. Вам так же потребуется 5 PCI видеокарт. В нашей тестовой системе мы использовали только USB клавиатуры и мыши, но вы можете использовать так же PS/2 клавиатуру и мышь для одного из мест, если хотите конечно.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;оригинал в &lt;a href="http://linuxgazette.net/"&gt;LG&lt;/a&gt;: &lt;a href="http://linuxgazette.net/124/smith.html"&gt;Build a Six-headed, Six-user Linux System&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt;, &lt;a href="http://technorati.com/tag/hardware" rel="tag"&gt;hardware&lt;/a&gt;, &lt;a href="http://technorati.com/tag/LG" rel="tag"&gt;LG&lt;/a&gt;, &lt;a href="http://technorati.com/tag/x-windows" rel="tag"&gt;x-windows&lt;/a&gt;, &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt;, &lt;a href="http://technorati.com/tag/красивые+решения" rel="tag"&gt;красивые+решения&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114171609578639852?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114171609578639852/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114171609578639852' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114171609578639852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114171609578639852'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/03/lg124-linux-6.html' title='LG#124: Создание многоместной Linux системы с 6-ю мониторами'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-114000561728770109</id><published>2006-02-15T14:13:00.000+02:00</published><updated>2006-07-27T00:03:40.216+03:00</updated><title type='text'>bootchart.tserver 18.10.2005</title><content type='html'>&lt;div class="flickr-frame"&gt;&lt;a title="photo sharing" href="http://www.flickr.com/photos/pak/97831110/"&gt;&lt;img class="flickr-photo" alt="" src="http://static.flickr.com/39/97831110_e8feb188f3.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="flickr-caption"&gt;&lt;a href="http://www.flickr.com/photos/pak/97831110/"&gt;bootchart.tserver 18.10.2005&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/people/pak/"&gt;andreipak&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="flickr-frame"&gt;с моей рабочей машины (Cel. 2,4Ghz 768Mb RAM)&lt;/div&gt;&lt;p class="flickr-yourcomment"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-114000561728770109?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/114000561728770109/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=114000561728770109' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114000561728770109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/114000561728770109'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/02/bootcharttserver-18102005.html' title='bootchart.tserver 18.10.2005'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113835673618465014</id><published>2006-01-27T08:53:00.000+02:00</published><updated>2006-01-29T11:22:30.786+02:00</updated><title type='text'>Colorer в Linux</title><content type='html'>В этой заметке я поведаю о замечательной системе подсветки синтаксиса(syntax highlighting) под названием &lt;a href="http://colorer.sourceforge.net"&gt;Colorer&lt;/a&gt;. Мое знакомство с этой системой произошло еще когда я учился в &lt;a href="http://ariu.berdyansk.net"&gt;ARIU&lt;/a&gt;. Я хотел чтобы в редакторе &lt;a href="http://www.farmanager.com"&gt;Far&lt;/a&gt; появилась подсветка синтаксиса, как в DOS Navigator'е. Первого помощника в этом деле плохо памятую, кажется, это был &lt;a href="http://plugring.farmanager.com/downld/files/highli01.rar"&gt;highlight&lt;/a&gt;, а вот colorer я использую и по сей день, а это более четырех лет. Расскажу немного про автора, и его работы. Автором Colorer является наш соотечественник &lt;a href="http://cail.nm.ru/"&gt;Игорь Русских&lt;/a&gt;, он является автором супер-расширяемого &lt;a href="http://plugring.farmanager.com/downld/files/calcpl.rar"&gt;калькулятора&lt;/a&gt; под Far. Кроме того, он создал шустрый и маленький &lt;a href="http://ru.wikipedia.org/wiki/SGML"&gt;SGML&lt;/a&gt;-парсер(XML он тоже парсит, т.к. XML-подмножество оного), и не менее шуструю библиотеку для работы с &lt;a href="http://colorer.sourceforge.net/oldies/cregexp.html"&gt;регулярными выражениями&lt;/a&gt;(regexp), я ее даже использовал:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(105, 105, 105);"&gt;//v 1.1 by areus 03.03.03&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;include &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;stdio.h&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;include &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;regexp\cregexp.h&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;include &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;string.h&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;void&lt;/span&gt; filterStdIn&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;char&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;sRegExp&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SMatches match&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;PRegExp re&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;bool&lt;/span&gt; isOK&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;char&lt;/span&gt; text&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;255&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;char&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;sMatch&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;re &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; CRegExp&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;sMatch &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;char&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;255&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;int&lt;/span&gt; len&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; i&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;!&lt;/span&gt;re&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;SetExpr&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sRegExp&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  printf&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;Error in regexp: &lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;%s&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; sRegExp&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;puts&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sRegExp&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;while&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;!&lt;/span&gt;feof&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 48, 0);"&gt;stdin&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  fgets&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;text&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 140, 0);"&gt;255&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(96, 48, 0);"&gt;stdin&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  isOK &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; re&lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;Parse&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;text&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;match&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt; i&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;lt;&lt;/span&gt;match&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;CurMatch &lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;&amp;&lt;/span&gt; isOK &lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt; i&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;match&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;      len &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; match&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;e&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;-&lt;/span&gt; match&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      strncpy&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;sMatch&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; text &lt;span style="color: rgb(128, 128, 48);"&gt;+&lt;/span&gt; match&lt;span style="color: rgb(128, 128, 48);"&gt;.&lt;/span&gt;s&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;i&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; len&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      sMatch&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;len&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 230);"&gt;'\0'&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;      printf&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;%s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; sMatch&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;isOK&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;printf&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;delete&lt;/span&gt; re&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; sMatch&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 0, 0);"&gt;main&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;int&lt;/span&gt; argc&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;char&lt;/span&gt; &lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;*&lt;/span&gt;argv&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;argc&lt;span style="color: rgb(128, 128, 48);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  filterStdIn&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;argv&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;else&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;  printf&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;RegExpFilter 1.0 [using Colorer's rx-lib]&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;&lt;br /&gt;  \r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;usage:&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\r&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;dir | &lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;%s&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt; /regexp/[gmi]&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;,&lt;/span&gt; argv&lt;span style="color: rgb(128, 128, 48);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 140, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Все перечисленное - opensource(см. исходники Colorer), и кроссплатформенно!. Colorer также доступен как &lt;a href="http://colorer.sourceforge.net/eclipsecolorer/index.html"&gt;плагин&lt;/a&gt; для платформы &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;. Про использование &lt;a href="http://colorer.sourceforge.net/farplugin.html"&gt;Colorer в Far&lt;/a&gt; я позже напишу в статье "Far - универсальная IDE", а вот как я использую colorer под Linux, опишу уже сейчас. Скачаем пакет &lt;a href="http://heanet.dl.sourceforge.net/sourceforge/colorer/Colorer-take5-linux.beta4.tar.bz2"&gt;colorer для linux&lt;/a&gt;, и установим, замечу, что это самый короткий configure-скрипт:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$./configure&lt;br /&gt;loading cache ./config.cache&lt;br /&gt;checking how to run the C preprocessor... (cached) cc -E&lt;br /&gt;checking whether ln -s works... (cached) yes&lt;br /&gt;checking whether make sets ${MAKE}... (cached) yes&lt;br /&gt;checking for main in -ldl... (cached) yes&lt;br /&gt;checking for main in -lm... (cached) yes&lt;br /&gt;checking for main in -lc... (cached) yes&lt;br /&gt;checking for working const... (cached) yes&lt;br /&gt;checking for inline... (cached) inline&lt;br /&gt;creating ./config.status&lt;br /&gt;creating Makefile&lt;br /&gt;$make&lt;br /&gt;$su -c 'make install'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Список подсвечиваемых синтаксисов довольно обширен, их 156(!):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$colorer -l|wc -l&lt;br /&gt;&lt;br /&gt;Colorer-take5 Library beta4 01.12.2004&lt;br /&gt;Copyright (c) 1999-2005 Igor Russkih &lt;cail ru=""&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;loading file types...&lt;br /&gt;156&lt;br /&gt;&lt;/cail&gt;&lt;/pre&gt;&lt;br /&gt;Использвание консольной colorer подробно описано &lt;a href="http://colorer.sourceforge.net/consoletools.html"&gt;тут&lt;/a&gt;. Я же ограничусь небольшими примерами.&lt;br /&gt;&lt;br /&gt;Создадим маленький исходник на языке C:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$echo -e '#include&lt;stdio.h&gt;\n\nmain(){\nprintf("hello colorer\\n");\n}' &gt; hc.c&lt;br /&gt;Посмотрим на него:&lt;br /&gt;$cat hc.c&lt;br /&gt;#include&lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;main(){&lt;br /&gt;printf("hello colorer\n");&lt;br /&gt;}&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/pre&gt;&lt;br /&gt;Сгенерируем HTML с подсветкой в файле hc.html:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$colorer -h hc.c -o hc.html&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Заметим что Colorer автоматически определил тип файла, и соответственно подсветил синтаксис. Автоопределение происходит как по расширению, так и по magic-байтам(это можно менять, правя соотв. *,hrc файлы). Такое поведение можно изменять, жестко указав тип(ключ -t).&lt;br /&gt;&lt;br /&gt;Если мы не указываем имя выходного файла (ключ -o), и указываем отключить HTML заголовки (ключ -dh, что значит disable headers), то получаем на STDOUT html-разметку для вставки(html-snippet):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/colorer_linux1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/colorer_linux1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Я копирую и вставляю эту разметку в html-код этого поста:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;#&lt;/span&gt;&lt;span style="color: rgb(0, 74, 67);"&gt;include&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(64, 1, 90);"&gt;stdio.h&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(64, 0, 0);"&gt;main&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;printf&lt;span style="color: rgb(128, 128, 48);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 230);"&gt;hello colorer&lt;/span&gt;&lt;span style="color: rgb(15, 105, 255);"&gt;\n&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 128, 48);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Теперь, если обьединить это с &lt;a href="http://paxoblog.blogspot.com/2006/01/dcop-klipper.html"&gt;функцией clip&lt;/a&gt;:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/colorer_linux2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/colorer_linux2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;html-snippet "ляжет" прямо в буфер обмена(clip -p перенаправит вывод в буфер), после чего остается только вставить код в редактируемый пост. Для удобства я написал следующую функцию:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; chl &lt;span style="color: rgb(128, 0, 128);"&gt;{&lt;/span&gt;&lt;br /&gt;colorer -dh -h $* &lt;span style="color: rgb(227, 74, 220);"&gt;|&lt;/span&gt; clip p&lt;br /&gt;&lt;span style="color: rgb(128, 0, 128);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;положил ее в  ~/.alias и использую ее так: chl &lt;filename&gt;&lt;br /&gt;Например:&lt;br /&gt;&lt;/filename&gt;&lt;pre&gt;&lt;br /&gt;chl print_ora_users_ldif.pl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Можно передавать Colorer'у ключи, например для нумерации строк:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;chl -ln print_ora_users_ldif.pl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Можно перенаправлять STDOUT:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cat print_ora_users_ldif.pl |chl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Замечу, что код подсветки зачастую занимает довольно большой объем. За его сокращение "отвечает" ключ -ht, но в этом случае нам нужно сперва определить соответствующие &lt;a href="http://www.w3.org/TR/CSS21/selector.html#class-html"&gt;css-классы&lt;/a&gt;(def_Comment,def_Syntax, и т.д.).&lt;br /&gt;&lt;br /&gt;Очень жаль, что недоступна страница &lt;a href="https://work.intersyst.ru/dyakov/?_page=mcsyn"&gt;Midnight Commander integration page&lt;/a&gt;, ссылка на которую есть на офсайте, потому как других упоминаний о такой интеграции, мне найти не удалось.&lt;br /&gt;&lt;br /&gt;Система генерации HTML Colorer'ом доступна в &lt;a href="http://colorer.sourceforge.net/php/"&gt;online&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Дополнительные ссылки&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://del.icio.us/areus/colorer"&gt;Мои закладки по теме&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://colorer.sourceforge.net/sshots/index.html"&gt;Скриншоты&lt;br /&gt;   &lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://colorer.sourceforge.net/php/demos.php"&gt;online-демонстрация Colorer&lt;/a&gt;&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/colorer" rel="tag"&gt;colorer&lt;/a&gt; &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt; &lt;a href="http://technorati.com/tag/%D0%BF%D1%80%D0%B8%D0%BC%D0%BE%D1%87%D0%BA%D0%B8+%D0%B1%D0%BB%D0%BE%D0%B3%D0%B3%D0%B5%D1%80%D0%B0" rel="tag"&gt;примочки+блоггера&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113835673618465014?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113835673618465014/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113835673618465014' title='3 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113835673618465014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113835673618465014'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/colorer-linux.html' title='Colorer в Linux'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113834301680893075</id><published>2006-01-27T08:23:00.000+02:00</published><updated>2006-01-27T08:32:05.170+02:00</updated><title type='text'>KDE 4 Screenshots</title><content type='html'>Поглядел на &lt;a href="http://www.planetdiaz.com/forums/index.php?showtopic=127"&gt;коллекцию скриншотов KDE4&lt;/a&gt;.&lt;br /&gt;Красиво, особенно понравился вот этот шот:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/KDE4_More.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6102/1585/320/KDE4_More.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/kde" rel="tag"&gt;kde&lt;/a&gt; &lt;a href="http://technorati.com/tag/screenshots" rel="tag"&gt;screenshots&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113834301680893075?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113834301680893075/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113834301680893075' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113834301680893075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113834301680893075'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/kde-4-screenshots.html' title='KDE 4 Screenshots'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113822391953362006</id><published>2006-01-25T23:18:00.000+02:00</published><updated>2006-01-26T15:39:22.306+02:00</updated><title type='text'>Wine 0.9.5 vs Windows XP SP2</title><content type='html'>&lt;a href="http://blogs.sitengine.ru/archives/287.html"&gt;MadDog’s Blog » Wine 0.9.5 vs Windows XP SP2&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;При проведении серии тестов производительности последний релиз свободной реализации WinAPI с открытым кодом — Wine 0.9.5 — в половине случаев показал более высокие результаты, чем Windows XP SP2.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Скоро &lt;a href="http://www.winehq.org"&gt;wine&lt;/a&gt; перегонит native-среду. Все возможно!&lt;div class="tag_list"&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Категории: &lt;/i&gt;&lt;a href="http://technorati.com/tag/wine" rel="tag"&gt;wine&lt;/a&gt; &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt; &lt;a href="http://technorati.com/tag/benchmark" rel="tag"&gt;benchmark&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113822391953362006?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113822391953362006/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113822391953362006' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113822391953362006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113822391953362006'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/wine-095-vs-windows-xp-sp2.html' title='Wine 0.9.5 vs Windows XP SP2'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113822203655840891</id><published>2006-01-25T22:47:00.000+02:00</published><updated>2006-01-26T15:36:12.850+02:00</updated><title type='text'>inforedesign » новички-21</title><content type='html'>&lt;a href="http://inforedesign.com/2005/10/31/novichki-21/"&gt;inforedesign » новички-21&lt;/a&gt; &lt;br/&gt; Денис Перехрест включил меня в свой регулярно обновляемый раздел "новички" в 21 выпуск, было это 31 октября. В 21 век - со своим блогом. &lt;br /&gt;&lt;br /&gt;Это первый пост, который я пишу под виндой у себя дома, используя расширение для firefox под названием &lt;a href="http://performancing.com/firefox/"&gt;perfomance.&lt;/a&gt; Классная вещь, интегрируется с сервисами &lt;a href="http://www.technorati.com/"&gt;technocrati&lt;/a&gt; и &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;, шлет &lt;a href="http://performancing.com/firefox/handbook/trackback"&gt;trackbacks&lt;/a&gt;, да еще много чего умеет. Кроме того, я плавно перехожу на firefox 1.5, и сейчас работаю в &lt;a href="http://portableapps.com/portable_firefox"&gt;portable firefox&lt;/a&gt; 1.5, который не требует установки, т.е. достаточно скопировать папочку со всеми расширениями и моими настройками. Вскоре я намереваюсь опубликовать небольшой дистрибутив на основе именно &lt;a href="http://portableapps.com/portable_firefox"&gt;portable firefox&lt;/a&gt;, где соберу все полезные расширения, выбранные в течение года использования огнелиса.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/firefox" rel="tag"&gt;firefox&lt;/a&gt;, &lt;a href="http://technorati.com/tag/%D0%BF%D1%80%D0%B8%D0%BC%D0%BE%D1%87%D0%BA%D0%B8+%D0%B1%D0%BB%D0%BE%D0%B3%D0%B3%D0%B5%D1%80%D0%B0" rel="tag"&gt;примочки блоггера&lt;/a&gt;, &lt;a href="http://technorati.com/tag/paxoblog" rel="tag"&gt;paxoblog&lt;/a&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113822203655840891?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113822203655840891/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113822203655840891' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113822203655840891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113822203655840891'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/inforedesign-21.html' title='inforedesign » новички-21'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113817795817846608</id><published>2006-01-25T10:32:00.000+02:00</published><updated>2006-01-25T11:28:11.286+02:00</updated><title type='text'>Xming - бесплатный X-сервер под Win32</title><content type='html'>&lt;a href="http://freedesktop.org/wiki/Xming"&gt;freedesktop.org - Xming&lt;/a&gt; - это порт X Window System под Microsoft Windows. В отличие от &lt;a href="http://freedesktop.org/wiki/CygwinX"&gt;Cygwin/X&lt;/a&gt;, он не зависит от &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; окружения.&lt;br /&gt;Как использовать:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.freedesktop.org/%7Eago/Xming/Xming-20050705-setup.exe"&gt;Скачаем&lt;/a&gt; , установим и запустим Xming. Он будет висеть в трее:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/xming_tray.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/xming_tray.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Скачаем и запустим(он не требует установки) &lt;a href="http://the.earth.li/%7Esgtatham/putty/0.58/x86/putty.exe"&gt;Putty&lt;/a&gt; - лучший win32 ssh-клиент.&lt;/li&gt;   &lt;li&gt;Настроим сессию в Putty:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/putty_session1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/putty_session1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/putty_session2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/putty_session2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Соединимся с X-клиентом, нажав у Putty "open" (замечу, что в терминах X-ов это именно клиент, а машина под windows - сервер), аутентифицируемся и запустим произвольное X-приложение:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/dbca_in_win.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/6102/1585/320/dbca_in_win.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;Как видно все очень просто: я запустил на удаленном linux-сервере конфигуратор Oracle(dbca), а работаю с его окном под windows.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt; &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt; &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt; &lt;a href="http://technorati.com/tag/X-windows" rel="tag"&gt;X-windows&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113817795817846608?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113817795817846608/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113817795817846608' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113817795817846608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113817795817846608'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/xming-x-win32.html' title='Xming - бесплатный X-сервер под Win32'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113817326354374149</id><published>2006-01-25T09:14:00.000+02:00</published><updated>2006-01-25T09:40:25.323+02:00</updated><title type='text'>Работа со строками в Bash из 'Tips от Madskull'a: bash'</title><content type='html'>Замечательнейший документ!!&lt;br /&gt;Содержание документа &lt;a href="http://citforum.ru/open_source/bash2/"&gt;Tips от Madskull'a: bash&lt;/a&gt;:&lt;br /&gt;"&lt;br /&gt;  * Ожидание запущенных в фоне задач&lt;br /&gt;  * прерывание по таймеру (SIGALRM)&lt;br /&gt;  * параметры в скриптах и функциях&lt;br /&gt;  * массивы&lt;br /&gt;  * trap: ловим прерывания (updated)&lt;br /&gt;  * Прогрессбар в bash-скриптах&lt;br /&gt;  * Чтение конфигов в скрипте&lt;br /&gt;  * Работа со строками&lt;br /&gt;  * Подстановка параметров&lt;br /&gt;  * getopts&lt;br /&gt;  * Переменные&lt;br /&gt;  * Цвета ECHO&lt;br /&gt;  * Спецсимволы&lt;br /&gt;  * Некоторые команды&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Сворую только один раздел:&lt;br /&gt;&lt;br /&gt;&lt;h3 style="text-align: center;"&gt;Работа со строками&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Длина строки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;${#string}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Извлечение подстроки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;${string:position}&lt;br /&gt;# с position до конца&lt;br /&gt;&lt;br /&gt;${string:position:length}&lt;br /&gt;# с position длиной length символов&lt;br /&gt;&lt;br /&gt;${string: -length}&lt;br /&gt;# последние length символов&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Удаление части строки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;${string#substring}&lt;br /&gt;# до первого с начала&lt;br /&gt;&lt;br /&gt;${string##substring}&lt;br /&gt;# до последнего с начала&lt;br /&gt;&lt;br /&gt;${string%substring}&lt;br /&gt;# до первого с конца&lt;br /&gt;&lt;br /&gt;${string%%substring}&lt;br /&gt;# до последнего с конца&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Замена подстроки&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;${string/substring/replacement}&lt;br /&gt;# первое вхождение&lt;br /&gt;&lt;br /&gt;${string//substring/replacement}&lt;br /&gt;# все вхождения&lt;br /&gt;&lt;br /&gt;${var/#Pattern/Replacement}&lt;br /&gt;# Если в переменной var найдено совпадение с Pattern,&lt;br /&gt;# причем совпадающая подстрока&lt;br /&gt;# расположена в начале строки (префикс),&lt;br /&gt;# то оно заменяется на Replacement.&lt;br /&gt;# Поиск ведется с начала строки&lt;br /&gt;&lt;br /&gt;${var/%Pattern/Replacement}&lt;br /&gt;# Если в переменной var найдено совпадение с Pattern,&lt;br /&gt;# причем совпадающая подстрока&lt;br /&gt;# расположена в конце строки (суффикс),&lt;br /&gt;# то оно заменяется на Replacement.&lt;br /&gt;# Поиск ведется с конца строки&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Замечачание к разделу "чтение конфигов в скрипте"&lt;/span&gt;:&lt;br /&gt;Есть в bash змечательный оператор включения в скрипт другого скрипта/файла("."). Его наличие практически сводит на нет такое "хитрое" чтение конфигов.&lt;br /&gt;Вот пример:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#set-route&lt;br /&gt;&lt;br /&gt;. ./route.conf&lt;br /&gt;&lt;br /&gt;#change this in /etc/iproute2/rt_tables&lt;br /&gt;TABLE=sirius&lt;br /&gt;&lt;br /&gt;echo `date +'%s %y/%m/%d %T'` $@ &gt;&gt; $0.log&lt;br /&gt;&lt;br /&gt;ip route delete default table $TABLE&lt;br /&gt;ip route add default via $UKRTEL_GW dev $UKRTEL_IF table $TABLE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;cat ./route.conf:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#P2 - utel&lt;br /&gt;P2_NET=192.168.1.0/24&lt;br /&gt;UKRTEL_NET=$P2_NET&lt;br /&gt;IF2=sirius&lt;br /&gt;UKRTEL_IF=$IF2&lt;br /&gt;P2=192.168.1.31&lt;br /&gt;UKRTEL_GW=$P2&lt;br /&gt;P2_TBL=ukrtel&lt;br /&gt;IP2=192.168.2.31&lt;br /&gt;&lt;br /&gt;#P1 -point&lt;br /&gt;#net-id=44, net-hosts:45-46, bcast:47&lt;br /&gt;&lt;br /&gt;#$P1_NET be the IP network $P1&lt;br /&gt;P1_NET=192.16.101.44/30&lt;br /&gt;POINT_NET=$P1_NET&lt;br /&gt;#$IF1 be the name of the first interface&lt;br /&gt;IF1=eth1&lt;br /&gt;POINT_IF=$IF1&lt;br /&gt;#$P1 be the IP address of the point-gateway&lt;br /&gt;P1=193.16.101.45&lt;br /&gt;POINT_GW=$P1&lt;br /&gt;P1_TBL=point&lt;br /&gt;#$IP1 be the IP address associated with $IF1&lt;br /&gt;IP1=193.16.101.46&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Таким образом мы храним общие параметры в отдельном файле и "инклюдим" их по надобности.&lt;br /&gt;&lt;br /&gt;Дополнительные ссылки:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://del.icio.us/areus/bash"&gt;Мои закладки по теме&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://gazette.linux.ru.net/rus/articles/index-abs-guide.html"&gt;Advanced Bash-Scripting Guide v.2.5 на русском&lt;/a&gt; c &lt;a href="http://gazette.linux.ru.net/index.html"&gt;LG на русском&lt;/a&gt; [&lt;a href="http://gazette.linux.ru.net/archive/abs-guide-2.5-flat.tar.gz"&gt;zip&lt;/a&gt;]&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.opennet.ru/man.shtml?topic=bash&amp;category=8&amp;amp;russian=0"&gt;man bash на русском&lt;/a&gt;  c &lt;a href="http://www.opennet.ru"&gt;opennet.ru&lt;/a&gt;&lt;br /&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt; &lt;a href="http://technorati.com/tag/commandline" rel="tag"&gt;commandline&lt;/a&gt; &lt;a href="http://technorati.com/tag/tips" rel="tag"&gt;tips&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113817326354374149?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113817326354374149/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113817326354374149' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113817326354374149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113817326354374149'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/bash-tips-madskulla-bash.html' title='Работа со строками в Bash из &apos;Tips от Madskull&apos;a: bash&apos;'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113776799767169117</id><published>2006-01-25T02:27:00.000+02:00</published><updated>2006-02-02T10:18:21.633+02:00</updated><title type='text'>yole.ru / Structorian</title><content type='html'>Весьма интересный проект.&lt;br /&gt;&lt;a href="http://www.yole.ru/projects/structorian/"&gt;yole.ru / Structorian&lt;/a&gt;:&lt;blockquote&gt;Язык описания структур, используемый Структорианом, достаточно мощен и по синтаксису напоминает C. Описывать простые структуры в Структориане не сложнее, чем вводить их описания на C. В то же время, для более сложных структур Структориан позволяет задавать иерархию данных, использовать циклы, условия, мощный механизм вычисления выражений и другие возможности. В идеале, Структориан должен позволять адекватно описывать любой реально существующий формат данных или сетевой протокол.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Структура, описывающая формат zip-файла(см. Strs/zip.strs) представлена ниже:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// ZIP archive structures&lt;br /&gt;// Compiled by Dmitry Jemerov &lt;yole ru=""&gt;&lt;br /&gt;// Based on .ZIP File Format Specification Version 4.5&lt;br /&gt;&lt;br /&gt;enum ZipCompressionMethod&lt;br /&gt;{&lt;br /&gt;"Stored", "Shrunk", "Reduced1", "Reduced2", "Reduced3", "Reduced4",&lt;br /&gt;"Imploded", "Tokenized", "Deflated", "Deflate64'ed",&lt;br /&gt;"PKWARE Data Compression Library Imploded"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;enum ZipFlags&lt;br /&gt;{&lt;br /&gt;Encrypted&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[filemask="*.zip"]&lt;br /&gt;struct LocalFileHeader&lt;br /&gt;{&lt;br /&gt;u32         Signature;&lt;br /&gt;assert (Signature == 0x04034b50);&lt;br /&gt;u16         VersionToExtract;&lt;br /&gt;set16       Flags [enum=ZipFlags];&lt;br /&gt;enum16      CompressionMethod [enum=ZipCompressionMethod];&lt;br /&gt;dosdatetime LastModification [timefirst];&lt;br /&gt;x32         CRC32;&lt;br /&gt;u32         CompressedSize;&lt;br /&gt;u32         UncompressedSize;&lt;br /&gt;u16         FileNameLength;&lt;br /&gt;u16         ExtraFieldLength;&lt;br /&gt;str         FileName [len=FileNameLength];&lt;br /&gt;nodename    FileName;&lt;br /&gt;if (ExtraFieldLength &gt; 0)&lt;br /&gt;{&lt;br /&gt; blob      ExtraField [len=ExtraFieldLength];&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;skip CompressedSize;&lt;br /&gt;[hidden] u32 _nextSignature;&lt;br /&gt;skip -4;&lt;br /&gt;if (_nextSignature == 0x04034b50)&lt;br /&gt;{&lt;br /&gt; sibling LocalFileHeader;&lt;br /&gt;}&lt;br /&gt;elif (_nextSignature == 0x02014b50)&lt;br /&gt;{&lt;br /&gt; sibling CentralFileHeader;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;struct CentralFileHeader&lt;br /&gt;{&lt;br /&gt;u32         Signature;&lt;br /&gt;assert      (Signature == 0x02014b50);&lt;br /&gt;u16         VersionMadeBy;&lt;br /&gt;u16         VersionToExtract;&lt;br /&gt;bits16      Flags;&lt;br /&gt;enum16      CompressionMethod [enum=ZipCompressionMethod];&lt;br /&gt;dosdatetime LastModification [timefirst];&lt;br /&gt;x32         CRC32;&lt;br /&gt;u32         CompressedSize;&lt;br /&gt;u32         UncompressedSize;&lt;br /&gt;u16         FileNameLength;&lt;br /&gt;u16         ExtraFieldLength;&lt;br /&gt;u16         FileCommentLength;&lt;br /&gt;u16         DiskNumberStart;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/yole&gt;&lt;/pre&gt;&lt;br /&gt;Теперь загрузим ее и "натравим" на &lt;a href="http://www.yole.ru/files/Structorian_20041015.zip"&gt;zip-дистрибутив&lt;/a&gt; самого structorian'a:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/structorian_zip.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/structorian_zip.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Структура(см. Strs/exe.strs) PE-файла(коими являются почти все *.dll, *.exe и даже *.sys) определяет следующее дерево:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/structorian_exe.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/structorian_exe.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Скриншоты немного "кривоваты" - это из-за Wine'а.&lt;br /&gt;В комлекте идут множество готовых структур(27):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dron@tserver:~/work/mny/ib/structorian/Strs&gt; ls -gG&lt;br /&gt;-rw-r--r--  1   422 2002-06-26 23:00 bmp.strs&lt;br /&gt;-rw-r--r--  1   622 2004-05-15 12:42 DocFile.strs&lt;br /&gt;-rw-r--r--  1  1028 2004-07-31 19:45 Escher.strs&lt;br /&gt;-rw-r--r--  1 16777 2002-07-14 22:13 exe.strs&lt;br /&gt;-rw-r--r--  1  1009 2004-08-07 12:55 Fido.strs&lt;br /&gt;-rw-r--r--  1   255 2002-11-07 23:45 HomePlanet.strs&lt;br /&gt;-rw-r--r--  1 48148 2004-08-17 09:23 infinity.strs&lt;br /&gt;-rw-r--r--  1  1523 2003-04-17 21:09 Java.strs&lt;br /&gt;-rw-r--r--  1  3875 2004-07-31 19:10 MicrosoftWord.strs&lt;br /&gt;-rw-r--r--  1  3243 2003-06-04 00:05 MIDI.strs&lt;br /&gt;-rw-r--r--  1  2763 2003-08-05 09:02 Miranda.strs&lt;br /&gt;-rw-r--r--  1  6587 2002-07-16 15:45 Morrowind.strs&lt;br /&gt;-rw-r--r--  1   399 2002-08-01 21:30 Neocron.strs&lt;br /&gt;-rw-r--r--  1  1912 2003-10-25 16:48 oedbx.strs&lt;br /&gt;-rw-r--r--  1   184 2003-05-09 16:21 PDB.strs&lt;br /&gt;-rw-r--r--  1  1593 2002-07-15 19:29 Python.strs&lt;br /&gt;-rw-r--r--  1  1384 2003-05-01 23:43 Quake2.strs&lt;br /&gt;-rw-r--r--  1  5040 2002-08-08 22:21 Quake3.strs&lt;br /&gt;-rw-r--r--  1  2399 2003-12-21 14:56 Quake.strs&lt;br /&gt;-rw-r--r--  1  2381 2002-10-15 21:10 rar.strs&lt;br /&gt;-rw-r--r--  1  3210 2002-12-28 20:16 SMS.strs&lt;br /&gt;-rw-r--r--  1  2082 2003-04-26 13:03 TADS3.strs&lt;br /&gt;-rw-r--r--  1  1472 2002-08-19 22:57 TheBat.strs&lt;br /&gt;-rw-r--r--  1   330 2003-04-12 17:04 titbit.strs&lt;br /&gt;-rw-r--r--  1  3270 2002-07-06 16:18 t-mail.strs&lt;br /&gt;-rw-r--r--  1   144 2002-07-16 08:25 vssver.scc&lt;br /&gt;-rw-r--r--  1  1716 2002-10-15 22:58 zip.strs&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Но самое главное что инструмент позволяет определять свои структуры, ведь он задумывался именно для этого. О том как это делать, нам поведает учебник, идущий в комплекте с программой, правда, на английском.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;Автор проекта - Дмитрий Жемеров. Он имеет прямое отношение к моему любимому файловому менеджеру &lt;a href="http://www.farmanager.com"&gt;Far&lt;/a&gt;: "Я входил в состав группы разработки FAR Manager с весны 2001 года и до выхода FAR 1.70 beta 5. Я отвечал практически за всю документацию, входящую в поставку FAR, переводил её на английский, вёл файл справки по API плагинов (plugins.hlp). Кроме того, я поддерживал плагин Network Browser и участвовал в разработке собственно FAR." Он является создателем библиотеки &lt;a href="http://farplus.sourceforge.net/"&gt;FarPlus&lt;/a&gt;, которая в разы упрощает написание плагинов для Far'а(посмотрите на его исходники для &lt;a href="http://www.yole.ru/projects/faruinst/"&gt;FarUinst&lt;/a&gt; или на &lt;a href="http://www.yole.ru/projects/startmgr/"&gt;StartMgr&lt;/a&gt;). Он же является автором супер-приложения &lt;a href="http://www.jetbrains.com/omea/"&gt;omea&lt;/a&gt;, с ней я не работал, но анонс впечатлил. Да много чего еще он &lt;a href="http://www.yole.ru/projects/"&gt;написал&lt;/a&gt;. Дмитрий ведет &lt;a href="http://blogs.jetbrains.com/yole"&gt;блог&lt;/a&gt; на английском языке, а также &lt;a href="http://yole.livejournal.com/"&gt;ЖЖ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/hacks" rel="tag"&gt;hacks&lt;/a&gt; &lt;a href="http://technorati.com/tag/tools" rel="tag"&gt;tools&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113776799767169117?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113776799767169117/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113776799767169117' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113776799767169117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113776799767169117'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/yoleru-structorian.html' title='yole.ru / Structorian'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113802469873037249</id><published>2006-01-23T15:58:00.000+02:00</published><updated>2006-01-23T16:01:57.490+02:00</updated><title type='text'>Изучим за 10 минут Python c Пороменосом</title><content type='html'>&lt;a href="http://www.poromenos.org/tutorials/python"&gt;Learn Python in 10 minutes | Poromenos' Stuff&lt;/a&gt;: "This tutorial will attempt to teach you Python in 10 minutes"&lt;br /&gt;Смелое завление, но автор выполнил обещание! Написано на английском, но материал будет понятен и русскми и китайцам :). Питон действительно простой язык!&lt;br /&gt;--&lt;br /&gt;А &lt;a href="http://www.drupal.org"&gt;drupal&lt;/a&gt; я сразу узнал..&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt; &lt;a href="http://technorati.com/tag/scripting" rel="tag"&gt;scripting&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113802469873037249?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.poromenos.org/tutorials/python' title='Изучим за 10 минут Python c Пороменосом'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113802469873037249/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113802469873037249' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113802469873037249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113802469873037249'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/10-python-c.html' title='Изучим за 10 минут Python c Пороменосом'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113801309125998172</id><published>2006-01-23T10:26:00.000+02:00</published><updated>2006-01-23T15:52:02.496+02:00</updated><title type='text'>Сказ про DCOP и Klipper</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/DCOP"&gt;DCOP&lt;/a&gt;(Desktop COmmunication Protocol) - один из интерфейсов межпроцессного взаимодействия(IPC), который был разработан в рамках проекта &lt;a href="http://kde.org"&gt;KDE&lt;/a&gt;.&lt;br /&gt;Модель взаимодействия довольно проста. Каждое приложение, использующее DCOP называется клиентом. Приложения связываются друг с другом через DCOP-сервер, который отвечает за доставку сообщений или вызовов в правильном направлении. DCOP поддерживает два вида действий: неблокирующие сообщения вида "послать и забыть"(send and forget), и блокирующие "вызовы" (calls), которые ожидают возврата некоторых данных. Существует одноименная консольная утилита dcop, которая позволяет "разговаривать" с приложениями, поддерживающими DCOP, а это почти все KDE-приложения.&lt;br /&gt;Упрощенный синтаксис следующий(подробней - man dcop):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dcop [ application [object [function [arg1] [arg2] [arg3] ... ] ] ]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Для начала вызовем dcop без аргументов:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dron@tserver:~&gt; dcop&lt;br /&gt;kwin&lt;br /&gt;kicker&lt;br /&gt;konqueror-4989&lt;br /&gt;kded&lt;br /&gt;kmix&lt;br /&gt;knotify&lt;br /&gt;suseplugger&lt;br /&gt;kio_uiserver&lt;br /&gt;kcookiejar&lt;br /&gt;konsole-7156&lt;br /&gt;mldonkeyapplet&lt;br /&gt;klauncher&lt;br /&gt;khotkeys&lt;br /&gt;sim&lt;br /&gt;konqueror-11604&lt;br /&gt;kdesktop&lt;br /&gt;klipper&lt;br /&gt;ksmserver&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Мы получили список приложений с которыми можем наладить коммуникации через DCOP. Чтобы получить интерфейсы по конкретному приложению мы вызываем dcop с аргументом-приложением, пример для k3b:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop k3b&lt;br /&gt;qt&lt;br /&gt;K3bInterface (default)&lt;br /&gt;K3bMainwindow&lt;br /&gt;K3bProject-0&lt;br /&gt;K3bProject-1&lt;br /&gt;KBookmarkManager-/home/dron/.kde/share/apps/k3b/bookmarks.xml&lt;br /&gt;KBookmarkManager-/home/dron/.kde/share/apps/konqueror/bookmarks.xml&lt;br /&gt;KBookmarkNotifier&lt;br /&gt;KDirNotify-1&lt;br /&gt;KIO::Scheduler&lt;br /&gt;MainApplication-Interface&lt;br /&gt;k3b&lt;br /&gt;ksycoca&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Опросим дальше:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop k3b MainApplication-Interface&lt;br /&gt;QCStringList interfaces()&lt;br /&gt;QCStringList functions()&lt;br /&gt;void disableSessionManagement()&lt;br /&gt;QCString startupId()&lt;br /&gt;QCString caption()&lt;br /&gt;void quit()&lt;br /&gt;void reparseConfiguration()&lt;br /&gt;void updateUserTimestamp(ulong time)&lt;br /&gt;dron@tserver:~&gt; dcop k3b K3bInterface&lt;br /&gt;QCStringList interfaces()&lt;br /&gt;QCStringList functions()&lt;br /&gt;DCOPRef createDataCDProject()&lt;br /&gt;DCOPRef createAudioCDProject()&lt;br /&gt;DCOPRef createMixedCDProject()&lt;br /&gt;DCOPRef createVideoCDProject()&lt;br /&gt;DCOPRef createMovixCDProject()&lt;br /&gt;DCOPRef createDataDVDProject()&lt;br /&gt;DCOPRef createVideoDVDProject()&lt;br /&gt;DCOPRef createMovixDVDProject()&lt;br /&gt;DCOPRef currentProject()&lt;br /&gt;DCOPRef openProject(KURL url)&lt;br /&gt;QValueList&lt;dcopref&gt; projects()&lt;br /&gt;void copyCd()&lt;br /&gt;void copyDvd()&lt;br /&gt;void eraseCdrw()&lt;br /&gt;void formatDvd()&lt;br /&gt;void burnCdImage(KURL url)&lt;br /&gt;void burnDvdImage(KURL url)&lt;br /&gt;void addUrls(KURL::List urls)&lt;br /&gt;void addUrl(KURL url)&lt;br /&gt;bool blocked()&lt;br /&gt;&lt;/dcopref&gt;&lt;/pre&gt;&lt;br /&gt;Но мы немного удалились от темы: причем тут klipper?? А при том что он тоже из комплекта KDE и тоже поддерживает DCOP:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dron@tserver:~&gt; dcop klipper klipper&lt;br /&gt;QCStringList interfaces()&lt;br /&gt;QCStringList functions()&lt;br /&gt;QString getClipboardContents()&lt;br /&gt;void setClipboardContents(QString s)&lt;br /&gt;void clearClipboardContents()&lt;br /&gt;void clearClipboardHistory()&lt;br /&gt;QStringList getClipboardHistoryMenu()&lt;br /&gt;QString getClipboardHistoryItem(int i)&lt;br /&gt;int newInstance()&lt;br /&gt;void quitProcess()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Так мы выведем на экран содержимое буфера обмена:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dcop klipper klipper getClipboardContents&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;А так определим свое содержимое буфера обмена:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dcop klipper klipper setClipboardContents myText&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Просто, а впечатляет. Мне часто приходится копировать тексты в виртуальную машину(&lt;a href="http://www.vmware.com"&gt;VMWare&lt;/a&gt;) и в терминальные подключения(&lt;a href="http://www.rdesktop.org"&gt;rdesktop&lt;/a&gt;), при этом многострочные тексты не копируются. Я решаю проблему через сетевой диск - создавая файл и копируя в него содержание буфера. Вот моя функция-обертка для взаимодействия с буфером обмена(klipper):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function clip() {&lt;br /&gt;#dron@bcsp 20060113&lt;br /&gt;case "$1" in&lt;br /&gt;e|--echo)&lt;br /&gt; dcop klipper klipper getClipboardContents&lt;br /&gt; ;;&lt;br /&gt;d|--dump)&lt;br /&gt;  dcop klipper klipper getClipboardHistoryMenu&lt;br /&gt;  ;;&lt;br /&gt;h|--history)&lt;br /&gt;  [ -z $2 ] &amp;&amp;amp; {&lt;br /&gt;     echo Need Numeric Index [0..N]&lt;br /&gt;    return 1&lt;br /&gt;   }&lt;br /&gt;  dcop klipper klipper getClipboardHistoryItem $2&lt;br /&gt;  ;;&lt;br /&gt;t|ts|tempsave)&lt;br /&gt;  FN=`date +%s`.`hostname`.clp&lt;br /&gt;  dcop klipper klipper getClipboardContents &gt; /temp/$FN&lt;br /&gt;  echo saved as "t:\\$FN [/temp/$FN]"&lt;br /&gt;  ;;&lt;br /&gt;p|--pipe)&lt;br /&gt;  dcop klipper klipper setClipboardContents "$(cat)"&lt;br /&gt;  ;;&lt;br /&gt;--help)&lt;br /&gt;  echo usage: clip ['echo|dump|history|tempsave|pipe']&lt;br /&gt;  ;;&lt;br /&gt;*)&lt;br /&gt; dcop klipper klipper getClipboardContents&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;она лежит у меня в ~/.bash_rc, точнее в ~/.alias, который "инклюдится" в ~/.bash_rc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Использование&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Просто выдать содержимое буфера:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$clip&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Выдать историю буфера(--dump):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$clip d&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Это бывает очень полезным при том, что вывод можно фильтровать, например:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$clip d|grep 'http://'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;В результате мы получим строки с URL, которые "проходили" через буфер. Всякий раз, выделяя текст, klipper копирует его в буфер(мне уже и в win этого не хватает), это, равно как и размерность истории определяется в настройках:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/klipper_settings.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/klipper_settings.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Перенаправление STDOUT(--pipe):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$clip p &lt; /etc/passwd &lt;br /&gt;$ls -la|clip p  &lt;br /&gt;$echo "Hello"|clip p  &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Пользуюсь этим очень часто, решение &lt;a href="http://www.linuxgazette.com/node/9047"&gt;подсмотрел&lt;/a&gt;.&lt;br /&gt;Сохранение содержания буфера во временный файл(--tempsave):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$clip ts&lt;br /&gt;saved as t:\1138011151.tserver.clp [/temp/1138011151.tserver.clp]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;После сохранения, я открываю этот файл с сетевого диска под Windows(простым выделением мышкой в konsole), а после в Far уже: Shift+F4,Shift+Ins - для открытия.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Еще примеры использования dcop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Выйти из системы(logout):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop kdesktop default logout&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Переключить на другой десктоп:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop kwin default setCurrentDesktop 2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Вывести список интерфейсов для окна k3b:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop k3b K3bMainwindow&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Скрыть окно k3b(show - для показа):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop k3b K3bMainwindow hide&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Переключить обои на рабочем столе:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop kdesktop KBackgroundIface currentWallpaper 1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Отключить поддержку Java в табе konqueror:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop konqueror-11604 html-widget1 setJavaEnabled false&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Пример-сценарий c использованием &lt;a href="http://k3b.plainblack.com/dcop"&gt;k3b&lt;/a&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;PROJECT=`dcop k3b K3bInterface createDataCDProject`&lt;br /&gt;dcop $PROJECT createFolder folderlvl0&lt;br /&gt;dcop $PROJECT createFolder folderlvl1 /folderlvl0&lt;br /&gt;dcop $PROJECT addUrl /tmp /folderlvl0/folderlvl1&lt;br /&gt;dcop $PROJECT burn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Добавлено в 15:08 - пример от EnErGy[CSDX]:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop amarok nowPlaying&lt;br /&gt;ASTRIX - FREESTYLE CAFE&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;От себя:&lt;br /&gt;player является дефолтным интерфейсом для amarok, поэтому мы можем писать dcop amarok и любой из нижеследующих аргументов:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$dcop amarok player&lt;br /&gt;QCStringList interfaces()&lt;br /&gt;QCStringList functions()&lt;br /&gt;bool dynamicModeStatus()&lt;br /&gt;bool equalizerEnabled()&lt;br /&gt;bool isPlaying()&lt;br /&gt;bool randomModeStatus()&lt;br /&gt;bool repeatPlaylistStatus()&lt;br /&gt;bool repeatTrackStatus()&lt;br /&gt;int getVolume()&lt;br /&gt;int sampleRate()&lt;br /&gt;int score()&lt;br /&gt;int status()&lt;br /&gt;int trackCurrentTime()&lt;br /&gt;int trackPlayCounter()&lt;br /&gt;int trackTotalTime()&lt;br /&gt;QString album()&lt;br /&gt;QString artist()&lt;br /&gt;QString bitrate()&lt;br /&gt;QString comment()&lt;br /&gt;QString coverImage()&lt;br /&gt;QString currentTime()&lt;br /&gt;QString encodedURL()&lt;br /&gt;QString engine()&lt;br /&gt;QString genre()&lt;br /&gt;QString lyrics()&lt;br /&gt;QString lyricsByPath(QString path)&lt;br /&gt;QString nowPlaying()&lt;br /&gt;QString path()&lt;br /&gt;QString setContextStyle(QString)&lt;br /&gt;QString title()&lt;br /&gt;QString totalTime()&lt;br /&gt;QString track()&lt;br /&gt;QString type()&lt;br /&gt;QString year()&lt;br /&gt;void configEqualizer()&lt;br /&gt;void enableDynamicMode(bool enable)&lt;br /&gt;void enableOSD(bool enable)&lt;br /&gt;void enableRandomMode(bool enable)&lt;br /&gt;void enableRepeatPlaylist(bool enable)&lt;br /&gt;void enableRepeatTrack(bool enable)&lt;br /&gt;void mediaDeviceMount()&lt;br /&gt;void mediaDeviceUmount()&lt;br /&gt;void mute()&lt;br /&gt;void next()&lt;br /&gt;void pause()&lt;br /&gt;void play()&lt;br /&gt;void playPause()&lt;br /&gt;void prev()&lt;br /&gt;void queueForTransfer(KURL url)&lt;br /&gt;void seek(int s)&lt;br /&gt;void seekRelative(int s)&lt;br /&gt;void setEqualizer(int,int,int,int,int,int,int,int,int,int,int)&lt;br /&gt;void setEqualizerEnabled(bool active)&lt;br /&gt;void setEqualizerPreset(QString name)&lt;br /&gt;void setLyricsByPath(QString url,QString lyrics)&lt;br /&gt;void setScore(int score)&lt;br /&gt;void setScoreByPath(QString url,int score)&lt;br /&gt;void setVolume(int volume)&lt;br /&gt;void showBrowser(QString browser)&lt;br /&gt;void showOSD()&lt;br /&gt;void stop()&lt;br /&gt;void transferDeviceFiles()&lt;br /&gt;void volumeDown()&lt;br /&gt;void volumeUp()&lt;br /&gt;void transferCliArgs(QStringList args)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Дополнительные ссылки:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.volny.cz/bwian/dcop.html"&gt;What is DCOP?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="Copying%20data%20to%20the%20clipboard%20from%20the%20command%20line%20under%20KDE"&gt;Copying data to the clipboard from the command line under KDE&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://developer.kde.org/documentation/other/dcop.html"&gt;DCOP: Desktop COmmunications Protocol&lt;/a&gt;&lt;br /&gt; &lt;/li&gt;  &lt;li&gt;&lt;a href="http://del.icio.us/areus/dcop"&gt;Мои закладки по теме&lt;/a&gt;&lt;br /&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt;&lt;a href="http://technorati.com/tag/commandline" rel="tag"&gt;commandline&lt;/a&gt; &lt;a href="http://technorati.com/tag/scripting" rel="tag"&gt;scripting&lt;/a&gt; &lt;a href="http://technorati.com/tag/linux" rel="tag"&gt;linux&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113801309125998172?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113801309125998172/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113801309125998172' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113801309125998172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113801309125998172'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/dcop-klipper.html' title='Сказ про DCOP и Klipper'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113774901210901578</id><published>2006-01-20T11:20:00.000+02:00</published><updated>2006-01-20T11:36:47.966+02:00</updated><title type='text'>Утилиты командной строки для Windows 2003 и Windows XP</title><content type='html'>&lt;a href="http://www.osp.ru/win2000/2005/04/018.htm"&gt;Windows IT Pro::Windows NT/2000/XP/2003::Утилиты командной строки для Windows 2003 и Windows XP&lt;/a&gt;:&lt;br /&gt;"В состав систем Windows Server 2003 и Windows XP Professional Edition входит ряд утилит командной строки, которые позволяют сэкономить время и силы при выполнении таких типичных операций, как создание и управление журналами событий, настройка страничного файла и файла Boot.ini, управление процессами и определение свободного дискового пространства. "&lt;br /&gt;&lt;br /&gt;Узнал много нового из данной стати, и весьма удобного. Для работы многих WSH-сценариев, нужно выполнить &lt;pre&gt; c:\&gt;cscript //h:cscript //nologo //s&lt;/pre&gt;&lt;br /&gt;что укажет серверу сценариев использовать консольный(CLI) интерпретатор cscript.exe вместо GUI-собрата -  wscript.exe, и подавить вывод баннера(версию сервера)&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Примеры&lt;/span&gt;&lt;br /&gt;Осмотр event-логов(CLI заменитель для GUI eventvwr.exe) может осуществляться и, подключаясь, к удаленным системам (ключ /S). Это может быть и контроллер домена.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    EVENTQUERY.vbs &lt;br /&gt;    EVENTQUERY.vbs /L system &lt;br /&gt;    EVENTQUERY.vbs /S system /U user /P password /V /L &lt;br /&gt;    EVENTQUERY.vbs /R 10 /L Application /NH&lt;br /&gt;    EVENTQUERY.vbs /R -10 /FO LIST /L Security&lt;br /&gt;    EVENTQUERY.vbs /R 5-10 /L "DNS Server"&lt;br /&gt;    EVENTQUERY.vbs /FI "Type eq Error" /L Application&lt;br /&gt;    EVENTQUERY.vbs /L Application&lt;br /&gt;            /FI "Datetime eq 06/25/00,03:15:00AM-06/25/00,03:15:00PM"&lt;br /&gt;    EVENTQUERY.vbs /FI "Datetime gt 08/03/00,06:20:00PM"&lt;br /&gt;            /FI "Id gt 700" /FI "Type eq warning" /L System&lt;br /&gt;    EVENTQUERY.vbs /FI "Type eq error OR Id gt 1000 "&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Работа с триггерами(обработчиками) событий. Интересно, где система хранит такую информацию, консоль ведь "отпускает". Где-то в недрах WMI..&lt;br /&gt;Будет время, разберу исходный тект.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    EVENTTRIGGERS /Create /?&lt;br /&gt;    EVENTTRIGGERS /Create /TR "Очистка диска" /L SYSTEM /T ERROR&lt;br /&gt;                         /TK c:\windows\system32\cleanmgr.exe&lt;br /&gt;    EVENTTRIGGERS /Create /S &lt;система&gt; /U &lt;пользователь&gt; /TR "Мало места"&lt;br /&gt;                          /EID 4133 /T WARNING^&lt;br /&gt;                          /TK \\&lt;сервер&gt;\&lt;ресурс&gt;\dsk.cmd&lt;br /&gt;    EVENTTRIGGERS /Create /S &lt;система&gt; /U &lt;домен&gt;\&lt;пользователь&gt; /P &lt;пароль&gt;&lt;br /&gt;                          /TR "Архивация" /EID 4133 /L SYSTEM&lt;br /&gt;                          /T ERROR /TK \\&lt;сервер&gt;\&lt;ресурс&gt;\ntbackup.exe&lt;br /&gt;    EVENTTRIGGERS /Create /RU &lt;пользователь&gt; /RP &lt;пароль&gt; /TR "Архивация"&lt;br /&gt;                          /TK \\&lt;сервер&gt; \&lt;ресурс&gt;\ntbackup.exe /EID 4&lt;br /&gt;&lt;br /&gt;c:&gt;Eventtriggers /Create /TR "Очистка диска" /L SYSTEM /T ERROR /TK&lt;br /&gt;C:\windows\system32\cleanmgr.exe&lt;br /&gt;ПРЕДУПРЕЖДЕНИЕ: Создан новый триггер событий, но он может не работать...&lt;br /&gt;УСПЕХ: Создан триггер событий "Очистка диска".&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Работаем с процессами - tasklist/taskkill. Знал и раньше, но про такую продвинутую фильтрацию слышу впервые.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    tasklist /FI «SERVICES eq RemoteRegistry»&lt;br /&gt;    taskkill /FI «WINDOWTITLE eq Безымянный — Блокнот» &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Особенно понравилась утилита forfiles.exe, но ее нет в WinXP&lt;br /&gt;Но самая-самая команда вот:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;hh %SystemRoot%\Help\Ntcmds.chm&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;И без нее никуда.&lt;br /&gt;Что можно сказать? Microsoft не стоит на месте и развивает,иногда, направление CLI.&lt;br /&gt;Они реализовали и развивают технологии &lt;a href="http://msdn.microsoft.com/scripting"&gt;WSH&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/library/en-us/adsi/adsi/active_directory_service_interfaces_adsi.asp"&gt;ADSI&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/library/en-us/wmisdk/wmi/wmi_start_page.asp"&gt;WMI&lt;/a&gt;, а теперь еще и &lt;a href="http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx"&gt;Monad&lt;/a&gt;, которые превращают жизнь админа в сущий &lt;a href="http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx"&gt;рай&lt;/a&gt; :), где уже давно находятся админы-юниксоиды.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/windows" rel="tag"&gt;windows&lt;/a&gt; &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt; &lt;a href="http://technorati.com/tag/wsh" rel="tag"&gt;wsh&lt;/a&gt; &lt;a href="http://technorati.com/tag/commandline" rel="tag"&gt;commandline&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113774901210901578?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113774901210901578/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113774901210901578' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774901210901578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774901210901578'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/windows-2003-windows-xp.html' title='Утилиты командной строки для Windows 2003 и Windows XP'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113774262202814043</id><published>2006-01-20T09:37:00.000+02:00</published><updated>2006-01-20T09:39:09.873+02:00</updated><title type='text'>Про блондинок</title><content type='html'>Шутки про блондинок довольно популярны, но ТАКОГО я, признаться, давно не встречал. И так давно уже не смеялся...  см. ссылку: &lt;a href="http://www.sellme.ru/2006/01/18/luchshaya_shutka_pro_blondinok"&gt;Лучшая шутка про блондинок - Sell Me&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/интересные+блоги" rel="tag"&gt;интересные+блоги&lt;/a&gt; &lt;a href="http://technorati.com/tag/приколы" rel="tag"&gt;приколы&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113774262202814043?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113774262202814043/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113774262202814043' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774262202814043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774262202814043'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/blog-post_20.html' title='Про блондинок'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113774010897501377</id><published>2006-01-20T08:55:00.000+02:00</published><updated>2006-03-13T10:09:34.846+02:00</updated><title type='text'>Стив Павлина: Как стать собой настоящим</title><content type='html'>В первый раз узнал о трудах &lt;a href="http://www.stevepavlina.com/blog/"&gt;Steve Pavlina&lt;/a&gt;, читая у Дениса Перехреста &lt;a href="http://inforedesign.com/2005/09/19/kak-stat-ranney-ptashkoy-2"&gt;inforedesign: как стать “ранней пташкой”-2&lt;/a&gt;. Недавно "встретил" еще &lt;a href="http://stevepavlina.narod.ru/"&gt;русские переводы его статей&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Приведу некоторые цитаты:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flash-usb.livejournal.com/54555.html"&gt;flash_usb: Как стать собой настоящим&lt;/a&gt;:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Одна из трактовок этой медитации состоит в том, что моё подсознание создало эту воображаемую личность как проекцию того, кем я мог стать — идеализированным вариантом меня. Но, может быть, на каком-то уровне эта личность действительно существует. Каким образом появилась эта модель, однако, не так важно для меня, как то, каким образом она помогает мне расти.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Сознательные люди делают это легко и свободно. Ярлыки и звания ничего не значат. Два сознательных человека могут впервые встретиться и через несколько минут общаться на тему миссии, цели и смысла жизни. Неважно, если один носит костюм, а другой — дырявые джинсы и футболку. Они могут этого не заметить. Они общаются по существу, потому что такие люди говорят так, будто имеют дело напрямую с душой друг друга.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rafo.livejournal.com/64734.html"&gt;rafo: Прекращаем откладывать дела на на потом&lt;/a&gt;:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Если ты говоришь себе – 'Я должен подготовить бумаги сегодня' или 'Я должен завершить создание этого отчёта' – скорее всего ты ввергаешь себя в состояние стресса и откладываешь задачу на потом. Решение заключается в том, чтобы думать о начале работы над небольшим участком задачи, вместо того, чтобы представлять что тебе надо завершить всю задачу целиком.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rafo.livejournal.com/52595.html"&gt;rafo: Смелость сознательной жизни&lt;/a&gt;:&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Но побочным эффектом от переоценки важности личной безопасности будет являться тот факт, что твоя жизнь превратится лишь в реагирование на внешние обстоятельства. Вместо того, чтобы ставить цели, планировать их достижение, и с удовольствием следовать своим планам, ты живёшь с осторожностью.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Благодарю за переводы, и за оригинал(ы). Очень впечатляет, радует еще, что не меня одного..&lt;br /&gt;&lt;br /&gt;Ссылки по теме:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://del.icio.us/areus/pavlina"&gt;http://del.icio.us/areus/pavlina&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://del.icio.us/areus/lifehacks"&gt;http://del.icio.us/areus/lifehacks&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://lifehack.ru"&gt;lifehack.ru&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/lifehacks" rel="tag"&gt;lifehacks&lt;/a&gt; &lt;a href="http://technorati.com/tag/pavlina" rel="tag"&gt;pavlina&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113774010897501377?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://flash-usb.livejournal.com/54555.html' title='Стив Павлина: Как стать собой настоящим'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113774010897501377/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113774010897501377' title='1 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774010897501377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113774010897501377'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2006/01/blog-post.html' title='Стив Павлина: Как стать собой настоящим'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113471739041387865</id><published>2005-12-16T09:16:00.000+02:00</published><updated>2005-12-16T10:07:40.353+02:00</updated><title type='text'>SSH Tunnelling (Port Forwarding)</title><content type='html'>Прошу прощения за долгое молчание... Почти месяц прошел с момента предыдущего поста.&lt;br /&gt;&lt;br /&gt;Долго мне пришлось договариваться об организации связи между моим домашним ПК и рабочим &lt;a href="http://bstport.berdyansk.net/"&gt;сервером&lt;/a&gt;. Да так, чтобы это не тарифицировалось как интернет-трафик(провайдер один - point). В конце концов мне разрешили соединяться через ssh(22) и imap(143), но ничего более, это чтобы я по вебам не лазал, а только логи просматривал, да почту читал... Соответственно платил кроме абонплаты(25 гр.) за трафик доброму провайдеру, а это не менее 0,3гр./Мб. 100Мб - 30гр - это то, что можно позволить на абонплату.&lt;br /&gt;Пришлось разобраться как в таких условиях можно лазать по вебу. Красивый способ - используя т.н. SSH-туннелирование, альтернативное название - "Port Forwarding".&lt;br /&gt;Все организует одна "магическая" команда(на ПК с именем zpak):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ssh -l dron -L 8000:192.168.100.2:3128 bstport.berdyansk.net cat -&lt;/code&gt;&lt;br /&gt;cat - нужна только для удержания соединения&lt;br /&gt;С помощью такой техники, варьируя локльные порты, можно через один туннель "форвардить" на несколько назначений, пример:&lt;br /&gt;&lt;code&gt;ssh -L 8000:pc1:3128 8022:pc1:22 8110:srv0:110 admin@srv cat -&lt;/code&gt;&lt;br /&gt;Под win32 такое можно &lt;a href="http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16126"&gt;организовать&lt;/a&gt;, например через &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html"&gt;PuTTY&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Теперь, подключаясь на zpak:8000(домашний ПК) через туннель(шифрованый ко всему прочему), происходит подключение к squid на моей локальной рабочей машине. Т.е. адресом прокси-сервера для моей домашней сети(2 ПК - SuSE9.3 и WinXP) будет zpak:8000&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ссылки&lt;/span&gt;:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.rzg.mpg.de/networking/tunnelling.html"&gt;SSH Tunnelling (Port Forwarding)&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16126"&gt;Creating an SSH tunnel for secure authentication (Windows)&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.employees.org/%7Esatch/ssh/faq/"&gt;SSH FAQ&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://del.icio.us/areus/ssh+tunnel"&gt;мои закладки по теме&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt; &lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/ssh" rel="tag"&gt;ssh&lt;/a&gt; &lt;a href="http://technorati.com/tag/admin" rel="tag"&gt;admin&lt;/a&gt; &lt;a href="http://technorati.com/tag/hacks" rel="tag"&gt;hacks&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113471739041387865?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113471739041387865/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113471739041387865' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113471739041387865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113471739041387865'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/12/ssh-tunnelling-port-forwarding.html' title='SSH Tunnelling (Port Forwarding)'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113240357421383426</id><published>2005-11-19T14:32:00.000+02:00</published><updated>2005-11-20T18:11:38.993+02:00</updated><title type='text'>RSS + AJAX + Python + Flickr</title><content type='html'>&lt;a href="http://argv0.net:8080/" rel="nofollow"&gt;Демонстрация работы&lt;/a&gt; &lt;a href="http://nevow.com/"&gt;Nevow&lt;/a&gt;'s &lt;a href="http://exe.cfdl.auckland.ac.nz/ref/private/nevow.livepage.LivePage-class.html"&gt;LivePage&lt;/a&gt;, используя &lt;a href="http://ajaxpatterns.org/"&gt;AJAX&lt;/a&gt; &lt;br /&gt;&lt;a href="http://argv0.net:8080/"&gt;&lt;/a&gt;&lt;br /&gt;введем в поле тэгированные фото котов с &lt;a href="http://flickr.com/"&gt;Flickr&lt;/a&gt;:&lt;br /&gt;&lt;code&gt;http://flickr.com/services/feeds/photos_public.gne?tags=cats&amp;amp;format=rss_200&lt;/code&gt;&lt;br /&gt;Просмотрим НОВЫЕ фото котов со всего мира. Естественно смотреть можно не только котов :).&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/tags/kiev"&gt;Фото Киева&lt;/a&gt;:&lt;br /&gt;&lt;code&gt;http://www.blogger.com/img/gl.link.gifs/photos_public.gne?tags=kiev&amp;amp;format=rss_200&lt;/code&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/tags/trees/show/"&gt;деревья&lt;/a&gt;, и другое:&lt;br /&gt;&lt;code&gt;http://flickr.com/services/feeds/photos_public.gne?tags=assol&amp;amp;format=rss_200&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ох уж эти &lt;a href="http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BB%D0%BA%D1%81%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F"&gt;фолксономии&lt;/a&gt;.&lt;br /&gt;...&lt;br /&gt;Функциональность обеспечивается следующим сценарием на Python в связке с &lt;a href="http://exe.cfdl.auckland.ac.nz/ref/private/nevow.livepage.LivePage-class.html"&gt;LivePage&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="py-src-keyword"&gt;class&lt;/span&gt; &lt;span class="py-src-identifier"&gt;AjaxRSS&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-parameter"&gt;livepage&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-parameter"&gt;LivePage&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;:&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-indent"&gt;    &lt;/span&gt;&lt;span class="py-src-variable"&gt;addSlash&lt;/span&gt; &lt;span class="py-src-op"&gt;=&lt;/span&gt; &lt;span class="py-src-variable"&gt;True&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span class="py-src-op"&gt;@&lt;/span&gt;&lt;span class="py-src-variable"&gt;livepage&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;handler&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;byId&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-string"&gt;'input'&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;value&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span class="py-src-keyword"&gt;def&lt;/span&gt; &lt;span class="py-src-identifier"&gt;selectFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-parameter"&gt;client&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-parameter"&gt;feedUrl&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;:&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-indent"&gt;        &lt;/span&gt;&lt;span class="py-src-keyword"&gt;def&lt;/span&gt; &lt;span class="py-src-identifier"&gt;updateClient&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-parameter"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;:&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-indent"&gt;            &lt;/span&gt;&lt;span class="py-src-keyword"&gt;if&lt;/span&gt; &lt;span class="py-src-variable"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'entries'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;:&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-indent"&gt;                &lt;/span&gt;&lt;span class="py-src-variable"&gt;entry&lt;/span&gt; &lt;span class="py-src-op"&gt;=&lt;/span&gt; &lt;span class="py-src-variable"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'entries'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-number"&gt;0&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'entries'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt; &lt;span class="py-src-op"&gt;=&lt;/span&gt; &lt;span class="py-src-variable"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'entries'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-number"&gt;1&lt;/span&gt;&lt;span class="py-src-op"&gt;:&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;client&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;set&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-string"&gt;"link"&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;a&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;href&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-variable"&gt;entry&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'link'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-variable"&gt;entry&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'title'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;client&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;set&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-string"&gt;"content"&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;p&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-variable"&gt;loaders&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;htmlstr&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;entry&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;'summary'&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;reactor&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;callLater&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-number"&gt;5&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;updateClient&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;parsedFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span class="py-src-dedent"&gt;&lt;/span&gt;&lt;span class="py-src-dedent"&gt;&lt;/span&gt;&lt;span class="py-src-variable"&gt;d&lt;/span&gt; &lt;span class="py-src-op"&gt;=&lt;/span&gt; &lt;span class="py-src-variable"&gt;getPage&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;feedUrl&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span class="py-src-variable"&gt;d&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;addCallback&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;parse&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;addCallback&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;updateClient&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span class="py-src-dedent"&gt;&lt;/span&gt;&lt;span class="py-src-variable"&gt;docFactory&lt;/span&gt; &lt;span class="py-src-op"&gt;=&lt;/span&gt; &lt;span class="py-src-variable"&gt;loaders&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;stan&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;html&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;            &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;head&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-variable"&gt;livepage&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;glue&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;            &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;body&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;p&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-string"&gt;"Enter an RSS url"&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;div&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"main"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                    &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;form&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"form"&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;onsubmit&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-variable"&gt;selectFeed&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;                        &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;input&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"input"&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;width&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"20"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                        &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;input&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;type&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"submit"&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;value&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"submit"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                    &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;div&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"post"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;[&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;                        &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;a&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"link"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt; &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;br&lt;/span&gt;&lt;span class="py-src-op"&gt;,&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                        &lt;span class="py-src-variable"&gt;T&lt;/span&gt;&lt;span class="py-src-op"&gt;.&lt;/span&gt;&lt;span class="py-src-variable"&gt;p&lt;/span&gt;&lt;span class="py-src-op"&gt;(&lt;/span&gt;&lt;span class="py-src-variable"&gt;id&lt;/span&gt;&lt;span class="py-src-op"&gt;=&lt;/span&gt;&lt;span class="py-src-string"&gt;"content"&lt;/span&gt;&lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-op"&gt;]&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span class="py-src-op"&gt;)&lt;/span&gt;&lt;span class="py-src-newline"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-nl"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="py-src-dedent"&gt;&lt;/span&gt;&lt;span class="py-src-endmarker"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;подсмотрел в &lt;a href="http://argv0.net/2005/6/27/simple-ajax-with-nevow-livepage/"&gt;a web journal by andrew r. gross&lt;/a&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/ajax" rel="tag"&gt;ajax&lt;/a&gt; &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt; &lt;a href="http://technorati.com/tag/интересные+блоги" rel="tag"&gt;интересные+блоги&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113240357421383426?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://argv0.net:8080/' title='RSS + AJAX + Python + Flickr'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113240357421383426/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113240357421383426' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113240357421383426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113240357421383426'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/11/rss-ajax-python-flickr.html' title='RSS + AJAX + Python + Flickr'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113214338762032731</id><published>2005-11-16T14:16:00.000+02:00</published><updated>2005-11-16T15:27:47.876+02:00</updated><title type='text'>TeXmacs, Python, GraphViz и другие</title><content type='html'>Копая в сторону &lt;a href="http://www.w3.org/RDF/"&gt;RDF&lt;/a&gt;, наткнулся на &lt;a href="http://dkbza.org/tmPython.html"&gt;tmPython&lt;/a&gt; - плагин для &lt;a href="http://www.texmacs.org/"&gt;TeXmacs&lt;/a&gt;, который позволяет интерактивно "общаться" с интерпретатором &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В итоге поставил:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.texmacs.org/"&gt;GNU TeXmacs&lt;/a&gt; is a free wysiwyw editing platform with special features for scientists&lt;/li&gt;   &lt;li&gt;&lt;a href="http://www.graphviz.org/"&gt;Graphviz&lt;/a&gt; - Graph Visualization Software &lt;img src="http://www.graphviz.org/Gallery/undirected/softmaint.small.png" /&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://pyx.sourceforge.net/index.html"&gt;PyX&lt;/a&gt; - Python package for the creation of PostScript and PDF files&lt;/li&gt;   &lt;li&gt;&lt;a href="http://dkbza.org/tmPython.html"&gt;tmPython&lt;/a&gt; - the TeXmacs Python plugin&lt;/li&gt;   &lt;li&gt;&lt;a href="http://dkbza.org/pydot.html"&gt;pydot&lt;/a&gt; - a Python interface to &lt;a href="http://www.research.att.com/sw/tools/graphviz/"&gt;Graphviz's&lt;/a&gt; Dot language.&lt;/li&gt;   &lt;li&gt;&lt;a href="http://pyparsing.sourceforge.net/"&gt;pyparsing&lt;/a&gt; -- an object-oriented approach to text processing in Python -  нужен для &lt;a href="http://dkbza.org/pydot.html"&gt;pydot&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; И что же это все позволяет? - можно резонно спросить..&lt;br /&gt;А я отвечу скриншотом(внешне напоминает &lt;a href="http://www.maplesoft.com/products/maple/index.aspx"&gt;Maple&lt;/a&gt;):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6102/1585/1600/tmPython.TeXemacs.GraphViz.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/6102/1585/320/tmPython.TeXemacs.GraphViz.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Отрисовывать графы в &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;(даже интерактивно), а это, поверьте, не так уж и мало..&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ссылки&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Проекты Ero Carrera(автора &lt;a href="http://dkbza.org/tmPython.html"&gt;tmPython&lt;/a&gt;)&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://dkbza.org/pydasm.html"&gt;pydasm&lt;/a&gt; - a Python interface to &lt;a href="http://www.nologin.org/main.pl?action=codeView&amp;codeId=49&amp;amp;"&gt;libdasm&lt;/a&gt;, the best x86 disassembling library out there.&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://dkbza.org/pype.html"&gt;pype&lt;/a&gt; - a Python module to read and work with PE files &lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://itc.ua/article.phtml?ID=6513"&gt;Швейцарский нож, или Визуализация графов&lt;/a&gt; - статья А. Зубинского, в &lt;a href="http://itcpublishing.com/ko/"&gt;КО&lt;/a&gt;, благодаря которой я познакомился с &lt;a href="http://www.graphviz.org/"&gt;Graphviz&lt;/a&gt; около 5-ти лет назад&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt; &lt;br /&gt;Примеры:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;#pydasm&lt;br /&gt;import pydasm&lt;br /&gt;# Very silly, nop and some xor's&lt;br /&gt;buffer = '\x90\x31\xc9\x31\xca\x31\xcb'&lt;br /&gt;offset = 0&lt;br /&gt;while offset &lt; len(buffer):&lt;br /&gt; i = pydasm.get_instruction(buffer[offset:], pydasm.MODE_32)&lt;br /&gt; print pydasm.get_instruction_string(i, pydasm.FORMAT_INTEL, 0)&lt;br /&gt; if not i:&lt;br /&gt;  break&lt;br /&gt; offset += i.length&lt;br /&gt;&lt;br /&gt;#pype&lt;br /&gt;import pype&lt;br /&gt;pe = pype.PE('/path/to/pe_file.exe', fast_load=False)&lt;br /&gt;pe.OPTIONAL_HEADER.AddressOfEntryPoint&lt;br /&gt;for section in pe.sections:&lt;br /&gt;  print section.Name&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/graph" rel="tag"&gt;graph&lt;/a&gt; &lt;a href="http://technorati.com/tag/graphviz" rel="tag"&gt;graphviz&lt;/a&gt; &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt; &lt;a href="http://technorati.com/tag/math" rel="tag"&gt;math&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113214338762032731?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dkbza.org/tmPython.html' title='TeXmacs, Python, GraphViz и другие'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113214338762032731/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113214338762032731' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113214338762032731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113214338762032731'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/11/texmacs-python-graphviz.html' title='TeXmacs, Python, GraphViz и другие'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113103131985934780</id><published>2005-11-03T14:00:00.000+02:00</published><updated>2005-11-04T07:32:44.226+02:00</updated><title type='text'>kcmshell - оружие тюнинга KDE</title><content type='html'>Однажды, залезши глубоко в подменю некоторого(уж не помню) приложения KDE, мне авился диалог:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.flickr.com/29/59352638_02b84eede6.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://static.flickr.com/29/59352638_02b84eede6.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;После недолгих манипуляций, выяснилось, что "родителем" диалога является приложение&lt;br /&gt;kcmshell, которое вызвано с аргументом fileshare.&lt;br /&gt;Меня заинтересовало.. админ-напарник подсказал:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$kcmshell --list&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;почему-то я не заметил этого аргумента в выводе&lt;br /&gt;&lt;span style="font-style: italic;"&gt;$kcmshell --help&lt;/span&gt;.&lt;br /&gt;в итоге выяснилось(в SuSE 9.3), что:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$kcmshell&lt;br /&gt;Применение: kcmshell [параметры Qt] [параметры KDE] [параметры]module&lt;br /&gt;&lt;br /&gt;Утилита запуска модулей настройки KDE&lt;br /&gt;&lt;br /&gt;Общие параметры:&lt;br /&gt;--help                    Показать справку о параметрах&lt;br /&gt;--help-qt                 Показать специфические параметры Qt&lt;br /&gt;--help-kde                Показать специфические параметры KDE&lt;br /&gt;--help-all                Показать все параметры&lt;br /&gt;--author                  Показать сведения об авторе&lt;br /&gt;-v, --version             Показать сведения о версии&lt;br /&gt;--license                 Показать сведения о лицензии&lt;br /&gt;--                        Конец параметров&lt;br /&gt;&lt;br /&gt;Параметры:&lt;br /&gt;--list                    Показать все доступные модули&lt;br /&gt;&lt;br /&gt;Аргументы:&lt;br /&gt;module                    Модуль настройки, который требуется открыть&lt;br /&gt;--lang &lt;language&gt;         Задать язык&lt;br /&gt;--embed &lt;id&gt;              Встроить модуль с кнопками в окно с идентификатором &lt;id&gt;&lt;br /&gt;--embed-proxy &lt;id&gt;        Встроить модуль без кнопок в окно с идентификатором &lt;id&gt;&lt;br /&gt;--silent                  Не показывать главное окно&lt;br /&gt;&lt;br /&gt;$kcmshell --list&lt;br /&gt;Доступны следующие модули:&lt;br /&gt;dsl               - Описание отсутствует&lt;br /&gt;fax               - Описание отсутствует&lt;br /&gt;isdn              - Описание отсутствует&lt;br /&gt;modem             - Описание отсутствует&lt;br /&gt;lan               - Описание отсутствует&lt;br /&gt;answering_machine - Описание отсутствует&lt;br /&gt;remote            - Описание отсутствует&lt;br /&gt;dhcp-server       - Описание отсутствует&lt;br /&gt;dns               - Описание отсутствует&lt;br /&gt;dns-server        - Описание отсутствует&lt;br /&gt;host              - Описание отсутствует&lt;br /&gt;http-server       - Описание отсутствует&lt;br /&gt;kerberos          - Описание отсутствует&lt;br /&gt;ldap              - Описание отсутствует&lt;br /&gt;mail              - Описание отсутствует&lt;br /&gt;inetd             - Описание отсутствует&lt;br /&gt;nfs               - Описание отсутствует&lt;br /&gt;nfs_server        - Описание отсутствует&lt;br /&gt;nis               - Описание отсутствует&lt;br /&gt;nis_server        - Описание отсутствует&lt;br /&gt;ntp-client        - Описание отсутствует&lt;br /&gt;samba-client      - Описание отсутствует&lt;br /&gt;samba-server      - Описание отсутствует&lt;br /&gt;tftp-server       - Описание отсутствует&lt;br /&gt;proxy             - Описание отсутствует&lt;br /&gt;routing           - Описание отсутствует&lt;br /&gt;groups            - Описание отсутствует&lt;br /&gt;users             - Описание отсутствует&lt;br /&gt;firewall          - Описание отсутствует&lt;br /&gt;security          - Описание отсутствует&lt;br /&gt;bluetooth         - Описание отсутствует&lt;br /&gt;cdrom             - Описание отсутствует&lt;br /&gt;controller        - Описание отсутствует&lt;br /&gt;x11               - Описание отсутствует&lt;br /&gt;hwinfo            - Описание отсутствует&lt;br /&gt;idedma            - Описание отсутствует&lt;br /&gt;irda              - Описание отсутствует&lt;br /&gt;mouse             - Описание отсутствует&lt;br /&gt;printer           - Описание отсутствует&lt;br /&gt;scanner           - Описание отсутствует&lt;br /&gt;tv                - Описание отсутствует&lt;br /&gt;joystick          - Описание отсутствует&lt;br /&gt;sound             - Описание отсутствует&lt;br /&gt;sw_source         - Описание отсутствует&lt;br /&gt;sw_single         - Описание отсутствует&lt;br /&gt;xen-dirinstall    - Описание отсутствует&lt;br /&gt;dirinstall        - Описание отсутствует&lt;br /&gt;checkmedia        - Описание отсутствует&lt;br /&gt;update            - Описание отсутствует&lt;br /&gt;cd_update         - Описание отсутствует&lt;br /&gt;online_update     - Описание отсутствует&lt;br /&gt;bootloader        - Описание отсутствует&lt;br /&gt;bootfloppy        - Описание отсутствует&lt;br /&gt;timezone          - Описание отсутствует&lt;br /&gt;keyboard          - Описание отсутствует&lt;br /&gt;yast-language     - Описание отсутствует&lt;br /&gt;lvm_config        - Описание отсутствует&lt;br /&gt;profile-manager   - Описание отсутствует&lt;br /&gt;runlevel          - Описание отсутствует&lt;br /&gt;restore           - Описание отсутствует&lt;br /&gt;powertweak        - Описание отсутствует&lt;br /&gt;disk              - Описание отсутствует&lt;br /&gt;sysconfig         - Описание отсутствует&lt;br /&gt;backup            - Описание отсутствует&lt;br /&gt;vendor            - Описание отсутствует&lt;br /&gt;support           - Описание отсутствует&lt;br /&gt;power-management  - Описание отсутствует&lt;br /&gt;bootmsg           - Описание отсутствует&lt;br /&gt;messages          - Описание отсутствует&lt;br /&gt;autoyast          - Описание отсутствует&lt;br /&gt;kwalletconfig     - Настройка бумажника KDE&lt;br /&gt;privacy           - Модуль kcontrol, очищающий&lt;br /&gt;нежелательные следы, оставленные пользователем в операционной системе&lt;br /&gt;crypto            - Настройка SSL, управление&lt;br /&gt;сертификатами и другими параметрами криптования&lt;br /&gt;kcm_useraccount   - Сведения о пользователе, такие как пароль, имя и e-mail&lt;br /&gt;kwindecoration    - Настройка внешнего вида заголовков окон&lt;br /&gt;kcmlaunch         - Выбор типа отклика приложений при запуске&lt;br /&gt;icons             - Настройка значков KDE&lt;br /&gt;kthememanager     - Менеджер глобальных визуальных тем KDE&lt;br /&gt;style             - Стиль и облик элементов KDE&lt;br /&gt;background        - Настройка фона рабочего стола&lt;br /&gt;screensaver       - Настройка хранителя экрана&lt;br /&gt;colors            - Настройка цветов&lt;br /&gt;fonts             - Настройка шрифтов&lt;br /&gt;ksplashthememgr   - Менеджер тем экрана-заставки&lt;br /&gt;audiocd           - Настройка протокола AudioCD&lt;br /&gt;arts              - Настройка звуковой системы&lt;br /&gt;kcmnotify         - Настройка системных уведомлений&lt;br /&gt;bell              - Настройка системного звукового сигнала&lt;br /&gt;kcmperformance    - Настройка параметров,&lt;br /&gt;которые могут повлиять на быстродействие KDE&lt;br /&gt;kcmvim            - Настройка компонента vim&lt;br /&gt;componentchooser  - Выбор основных компонентов разнообразных служб&lt;br /&gt;kcmsmserver       - Настройка менеджера сеансов&lt;br /&gt;filetypes         - Настройка привязки файлов&lt;br /&gt;spellchecking     - Настройка проверки орфографии&lt;br /&gt;kresources        - Настройка ресурсов KDE&lt;br /&gt;kcmkded           - Настройка системных служб&lt;br /&gt;filebrowser       - Настройка режима менеджера файлов&lt;br /&gt;obex              - OBEX device configuration tool&lt;br /&gt;joystick          - joystick - модуль kcontrol&lt;br /&gt;для проверки джойстика&lt;br /&gt;display           - Настройка дисплея&lt;br /&gt;keyboard          - Настройка клавиатуры&lt;br /&gt;mouse             - Настройка мыши&lt;br /&gt;kcmlirc           - Настройка удалённого управления приложениями&lt;br /&gt;kamera            - Настройка камеры&lt;br /&gt;krandrtray        - Аплет панели для изменения размера&lt;br /&gt;и ориентации экранов X.&lt;br /&gt;desktop           - Настройка количества виртуальных рабочих столов&lt;br /&gt;kcmkicker         - Описание отсутствует&lt;br /&gt;kwinrules         - Настройка особых параметров окна&lt;br /&gt;panel             - Настройка выравнивания панели&lt;br /&gt;kcmtaskbar        - Настройки панели задач&lt;br /&gt;desktopbehavior   - Настройка поведения рабочего стола&lt;br /&gt;kwinoptions       - Настройка поведения браузера&lt;br /&gt;kresources        - Настройка ресурсов KDE&lt;br /&gt;khotkeys          - Настройка комбинаций клавиш&lt;br /&gt;keys              - Настройка привязок клавиш&lt;br /&gt;keyboard_layout   - Раскладка клавиатуры&lt;br /&gt;kcmaccess         - Специальные возможности для людей&lt;br /&gt;с физическими недостатками&lt;br /&gt;language          - Настройки языка, даты и времени&lt;br /&gt;для вашего региона&lt;br /&gt;kcm_btpaired      - Manage paired Bluetooth devices&lt;br /&gt;cookies           - Настройка cookies&lt;br /&gt;khtml_java_js     - Настройка поведения Java и JavaScript&lt;br /&gt;kcmhistory        - Настройка боковой панели журнала&lt;br /&gt;useragent         - Настройка идентификации Konqueror&lt;br /&gt;cache             - Настройка кэша&lt;br /&gt;khtml_plugins     - Настройка плагинов браузера&lt;br /&gt;khtml_behavior    - Настройка поведения браузера&lt;br /&gt;kcmcgi            - Настройка CGI KIO slave&lt;br /&gt;ebrowsing         - Сокращения, используемые при просмотре Веб&lt;br /&gt;kcmcss            - Настройка стилей CSS,&lt;br /&gt;используемых при отображении веб-страниц&lt;br /&gt;khtml_fonts       - Настройка шрифтов веб-страниц&lt;br /&gt;kcmdonkey         - Настройка интеграции MLDonkey&lt;br /&gt;kcmsambaconf      - KcmSambaConf - Модуль Центра&lt;br /&gt;управления для настройки сервера Samba&lt;br /&gt;lanbrowser        - Настройка lisa, reslisa и ioslaves&lt;br /&gt;kcm_kdnssd        - Настройка обнаружения сервисов&lt;br /&gt;kcmkrfb           - Параметры общего рабочего стола&lt;br /&gt;proxy             - Настройка серверов прокси&lt;br /&gt;netpref           - Общие свойства сети, такие как значения таймаутов&lt;br /&gt;kcm_kbluetoothd   - Manage Bluetooth Services offered to others.&lt;br /&gt;fileshare         - Включить или выключить общий доступ к файлам&lt;br /&gt;kdm               - Настройка менеджера входа в систему (KDM)&lt;br /&gt;thinkpad          - Настройка интерфейса KDE для&lt;br /&gt;специальных клавиш ноутбука IBM Thinkpad&lt;br /&gt;kvaio             - Настройка интерфейса KDE для&lt;br /&gt;драйвера программируемого контроллера прерываний Sony&lt;br /&gt;desktoppath       - Пути к важным файлам&lt;br /&gt;kcmfontinst       - Установка и просмотр шрифтов&lt;br /&gt;laptop            - Аккумулятор ноутбука&lt;br /&gt;kmenuedit         - Описание отсутствует&lt;br /&gt;&lt;br /&gt;&lt;/id&gt;&lt;/id&gt;&lt;/id&gt;&lt;/id&gt;&lt;/language&gt;&lt;/pre&gt;&lt;br /&gt;Вот это находка, натравил &lt;a href="http://www.google.com.ua/search?q=kcmshell"&gt;гугль&lt;/a&gt;, - негусто..&lt;br /&gt;Но и так информации немало. Многое(но не все) доступно через "Центр Управления KDE".&lt;br /&gt;Не вызывает сомнений, что "Утилита запуска модулей настройки KDE" будет полезна в повседневной работе (в моей точно :).&lt;br /&gt;&lt;br /&gt;А теперь применим bash completion, о котором я упоминал &lt;a href="http://paxoblog.blogspot.com/2005/10/bash.html"&gt;ранее&lt;/a&gt;.&lt;br /&gt;Итак, даем команду:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$complete -W "`kcmshell --list|cut -d" " -f1|sed -e '1d'|xargs`" kcmshell&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;и теперь по нажатию TAB в аргументах этой замечательной утилиты получаем допустимые значения(суть - настраиваемые подсистемы). Многие настройки требуют привелегий root.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.flickr.com/27/59352642_c69a9ea365.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://static.flickr.com/27/59352642_c69a9ea365.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt; &lt;a href="http://technorati.com/tag/tips" rel="tag"&gt;tips&lt;/a&gt; &lt;a href="http://technorati.com/tag/KDE" rel="tag"&gt;KDE&lt;/a&gt; &lt;a href="http://technorati.com/tag/unix" rel="tag"&gt;unix&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113103131985934780?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113103131985934780/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113103131985934780' title='2 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113103131985934780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113103131985934780'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/11/kcmshell-kde.html' title='kcmshell - оружие тюнинга KDE'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113094174521633074</id><published>2005-11-02T16:29:00.000+02:00</published><updated>2005-11-02T16:35:40.296+02:00</updated><title type='text'>Запуск rdesktop без X сервера</title><content type='html'>&lt;a href="http://www.opennet.ru/opennews/art.shtml?num=6298"&gt;The OpenNET Project: Текст новости&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Вышел &lt;a href="http://www.elinux.org.ru/rdesktop/"&gt;патч&lt;/a&gt; для  &lt;a href="http://www.rdesktop.org/"&gt;rdesktop&lt;/a&gt;&lt;br /&gt;(удаленный рабочий стол, Unix клиент для Windows NT/2000/2003 Terminal&lt;br /&gt;Server), позволяющий запускать последний без X сервера. Для&lt;br /&gt;графического вывода используется быстрая библиотека &lt;a href="http://www.svgalib.org/"&gt;svgalib&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Здорово!&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/здорово" rel="tag"&gt;здорово&lt;/a&gt; &lt;a href="http://technorati.com/tag/unix" rel="tag"&gt;unix&lt;/a&gt; &lt;a href="http://technorati.com/tag/терминалы" rel="tag"&gt;терминалы&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113094174521633074?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.opennet.ru/opennews/art.shtml?num=6298' title='Запуск rdesktop без X сервера'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113094174521633074/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113094174521633074' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113094174521633074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113094174521633074'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/11/rdesktop-x.html' title='Запуск rdesktop без X сервера'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113067045114745461</id><published>2005-10-30T12:50:00.000+02:00</published><updated>2005-10-30T13:18:14.256+02:00</updated><title type='text'>Автодополнение в bash</title><content type='html'>Вот такая команда заставит в аргументах service по &lt;Tab&gt; "вываливаться" &lt;br /&gt;только службы, доступные чз chkconfig.&lt;br /&gt;$complete -W  "`chkconfig  --list|awk '{print $1}'`" service&lt;br /&gt;Пробуем:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$service TAB-TAB&lt;/pre&gt;&lt;br /&gt;Например в моей системе(2.6.11-1.1369_FC4):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# service a-TAB-TAB&lt;br /&gt;acpid    anacron  apmd     atd      auditd   autofs&lt;br /&gt;# service b-TAB-TAB&lt;br /&gt;сразу в&lt;br /&gt;# service bluetooth&lt;br /&gt;# service c-TAB-TAB&lt;br /&gt;cpuspeed            crond               cups                cups-config-daemon&lt;br /&gt;...&lt;br /&gt;# service z&lt;br /&gt;ничего не находит&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Более &lt;a href="http://www.caliban.org/bash/index.shtml"&gt;подробно про bash-completion&lt;/a&gt;, а &lt;a href="http://www.opennet.ru/docs/RUS/bash_scripting_guide/a15124.html"&gt;здесь&lt;/a&gt; есть еще примеры использования, и не только completion.&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/bash" rel="tag"&gt;bash&lt;/a&gt; &lt;a href="http://technorati.com/tag/tips" rel="tag"&gt;tips&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113067045114745461?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113067045114745461/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113067045114745461' title='3 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113067045114745461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113067045114745461'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/10/bash.html' title='Автодополнение в bash'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113057038572570347</id><published>2005-10-29T10:19:00.000+03:00</published><updated>2005-10-29T10:51:17.663+03:00</updated><title type='text'>Рапидшара, стеллариум и аниме - Журнал "Компьютерра"</title><content type='html'>&lt;a href="http://offline.computerra.ru/2005/610/234265/"&gt;Рапидшара, стеллариум и аниме - Журнал "Компьютерра"&lt;/a&gt;&lt;br /&gt;Занимательная статья, цитата:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;"Напомню, о чем речь. В начале этого года сайты &lt;a href="http://www.avaxhome.ru/"&gt;Avaxhome&lt;/a&gt;, &lt;a href="http://www.medigo.ru/"&gt;Medigo&lt;/a&gt;, &lt;a href="http://www.kpnemo.ru/"&gt;Капитан Немо&lt;/a&gt; и иже с ними дружно превратились из скучных бакунианских междусобойчиков в цветущую греческую агору, после того как установили специальный 'блоггерский' движок, позволяющий всем желающим делиться любимой музыкой, электронными текстами, видео, компьютерными программами и тем, что Феликс Мучник благообразно окрестил 'ой, надо же! - порнуха'."&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Можно предпложить, что автор - ЛюбительВарезаСоСтажем, если учесть его познания в области ПО для&lt;br /&gt;закачивания через РапидоШароПодобные онлайн-службы. Но в противовес, статья носит несколько обличающий характер. К слову, раздел в котором находится публикация, носит замысловатое название "голубятня", а вот к чему бы это?..&lt;br /&gt;&lt;br /&gt;Одного не понял: чем же так не доволен Сергей Голубицкий.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;А мне нравится avaxhome, и я частенько тяну оттуда ебуки..&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;a href="http://technorati.com/tag/rapidshare" rel="tag"&gt;rapidshare&lt;/a&gt; &lt;a href="http://technorati.com/tag/avaxhome" rel="tag"&gt;avaxhome&lt;/a&gt; &lt;a href="http://technorati.com/tag/%D0%BD%D0%B5+%D0%BF%D0%BE%D0%BD%D1%8F%D0%BB" rel="tag"&gt;не+понял&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113057038572570347?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://offline.computerra.ru/2005/610/234265/' title='Рапидшара, стеллариум и аниме - Журнал &quot;Компьютерра&quot;'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113057038572570347/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113057038572570347' title='4 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113057038572570347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113057038572570347'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/10/blog-post_29.html' title='Рапидшара, стеллариум и аниме - Журнал &quot;Компьютерра&quot;'/><author><name>Andrei Pak</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/29/buddyicons/38851929@N00.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17131334.post-113048120384312313</id><published>2005-10-28T09:33:00.000+03:00</published><updated>2005-11-04T07:37:15.380+02:00</updated><title type='text'>How Much Is My Blog Worth</title><content type='html'>Прочитал у &lt;a title="Site: inforedesign" href="http://inforedesign.com/2005/10/25/how-much-is-my-blog-worth/" target="_blank"&gt;Дениса Перехреста&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/?url=paxoblog.blogspot.com"&gt;Business Opportunities Weblog | How Much Is My Blog Worth&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Забавно!&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 0pt 0pt 10px; background-color: white; width: 115px; text-align: center;"&gt;&lt;p style="margin: 0pt;"&gt;&lt;img src="http://static.flickr.com/23/25822676_789bf55448_t.jpg" style="border: 0pt none ;" /&gt;&lt;br /&gt;  &lt;span style="font-size:11;"&gt;My &lt;a href="http://paxoblog.blogspot.com/"&gt;blog&lt;/a&gt; is worth &lt;b&gt;$0.00&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:10;"&gt;&lt;a href="http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/"&gt;How much is your blog worth?&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.technorati.com/" style="border: 0px none ;"&gt;&lt;img src="http://technorati.com/pix/tech-logo-embed.gif" style="border: 0px none ;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Интересно сравнить с блогом &lt;a href="http://strannick.blogspot.com/"&gt;StraNNick&lt;/a&gt;'a, благодаря которому я становлюсь блоггером :&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 0pt 0pt 10px; background-color: white; width: 115px; text-align: center;"&gt;&lt;p style="margin: 0pt;"&gt;&lt;img src="http://static.flickr.com/23/25822676_789bf55448_t.jpg" style="border: 0pt none ;" /&gt;&lt;br /&gt;  &lt;span style="font-size:11;"&gt;My &lt;a href="http://strannick.blogspot.com/"&gt;blog&lt;/a&gt; is worth &lt;b&gt;$6,774.48&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:10;"&gt;&lt;a href="http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/"&gt;How much is your blog worth?&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.technorati.com/" style="border: 0px none ;"&gt;&lt;img src="http://technorati.com/pix/tech-logo-embed.gif" style="border: 0px none ;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;&lt;i&gt;Категории:&lt;/i&gt; &lt;span&gt; &lt;a href="http://technorati.com/tag/прмочки+блоггера" rel="tag"&gt;примочки+блоггера&lt;/a&gt; &lt;a href="http://technorati.com/tag/technocrati" rel="tag"&gt;technocrati&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17131334-113048120384312313?l=paxoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/?url=paxoblog.blogspot.com' title='How Much Is My Blog Worth'/><link rel='replies' type='application/atom+xml' href='http://paxoblog.blogspot.com/feeds/113048120384312313/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17131334&amp;postID=113048120384312313' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113048120384312313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17131334/posts/default/113048120384312313'/><link rel='alternate' type='text/html' href='http://paxoblog.blogspot.com/2005/10/how-much-is-my-blog-worth.html' title='H
