<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog. mult edition &#187; Programming</title>
	<atom:link href="http://multed.net/topic/software/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://multed.net</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 08:59:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Укоротнялка weeg.ru. Продолжение</title>
		<link>http://multed.net/2011/01/ukorotnyalka-weeg-ru-prodolzhenie/</link>
		<comments>http://multed.net/2011/01/ukorotnyalka-weeg-ru-prodolzhenie/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 16:07:34 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[weeg.ru]]></category>
		<category><![CDATA[api.weeg.ru]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://multed.net/?p=876</guid>
		<description><![CDATA[Продолжаю заниматься в свободное время Укоротнялкой адресов (URL shortener) &#8212; weeg.ru. Проектик увлекает, код закручивается, заворачивается во всякие обертки все больше. Последнее время работал над API, с помощью которого можно делать разные вещи, такие как получить статистику по дням или общее количество переходов (для счетчика какого-нибудь подойдет), или получить короткую ссылку прямо из какого-нибудь скрипта, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2011%2F01%2Fukorotnyalka-weeg-ru-prodolzhenie%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2011%2F01%2Fukorotnyalka-weeg-ru-prodolzhenie%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Продолжаю заниматься в свободное время Укоротнялкой адресов (URL shortener) &#8212; <a href="http://weeg.ru" target="_blank">weeg.ru</a>. Проектик увлекает, код закручивается, заворачивается во всякие обертки все больше. Последнее время работал над API, с помощью которого можно делать разные вещи, такие как получить статистику по дням или общее количество переходов (для счетчика какого-нибудь подойдет), или получить короткую ссылку прямо из какого-нибудь скрипта, получив на запрос код в XML.</p>
<p>Посмотреть ридми по апи можете по адресу <a href="http://api.weeg.ru" target="_blank">api.weeg.ru</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2011/01/ukorotnyalka-weeg-ru-prodolzhenie/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Укоротнялка URL для себя</title>
		<link>http://multed.net/2011/01/ukorotnyalka-url-dlya-sebya/</link>
		<comments>http://multed.net/2011/01/ukorotnyalka-url-dlya-sebya/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 12:44:44 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[weeg.ru]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://multed.net/?p=848</guid>
		<description><![CDATA[С конца прошлого, 2010, года пишу сабж &#8212; weeg.ru. Для себя, любимого, для тренировки ума и повышения организованности мысли. Язык программирования &#8212; Perl, Сервер баз данных &#8212; MySQL, Таблички в InnoDB, Web-сервер &#8212; Lighttpd (с настроеным rewrite). Подыскиваю короткий домен для укорачивалки, потому что текущий &#8212; уж очень длинный для текущих нужд. Уже нашел короткий [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2011%2F01%2Fukorotnyalka-url-dlya-sebya%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2011%2F01%2Fukorotnyalka-url-dlya-sebya%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://multed.net/?attachment_id=871"><img class="alignleft size-medium wp-image-871" title="weeg.ru_diz" src="http://multed.net/wp-content/uploads/2011/01/weeg.ru_diz-300x156.png" alt="" width="300" height="156" /></a><br />
С конца прошлого, 2010, года пишу сабж &#8212; <a href="http://weeg.ru" target="_blank">weeg.ru</a>. Для себя, любимого, для тренировки ума и повышения организованности мысли.</p>
<ul>
<li>Язык программирования &#8212; <strong>Perl</strong>,</li>
<li>Сервер баз данных &#8212; <strong>MySQL</strong>,</li>
<li>Таблички в <strong>InnoDB</strong>,</li>
<li>Web-сервер &#8212; <strong>Lighttpd</strong> (с настроеным rewrite).</li>
</ul>
<p>Подыскиваю короткий домен для укорачивалки, потому что текущий &#8212; уж очень длинный для текущих нужд. Уже нашел короткий домен.</p>
<p><strong>Что уже есть: </strong></p>
<ul>
<li>собственно, получение короткого URL;</li>
<li>статистика по переходам;</li>
<li>при получении короткой ссылки проверяется цель.</li>
</ul>
<p><strong>Что планируется: </strong></p>
<ul>
<li>Добавить автоматическое создание превью страницы</li>
<li>Добавить статистику по паролю</li>
<li>Расширенную статистику (по странам, браузерам, языкам и прочим параметрам)</li>
<li>Ну и сделать хоть какой-то дизайн.</li>
</ul>
<p><span id="more-848"></span><br />
<em>2010-01-12</em><br />
<strong>UPD</strong>: Сделал с помощью жены и <a href="http://xvitaliusx.ru">Витальки Бакланова</a> какой-то диз &#8212; спасибо им большое. А еще привесил на короткое имя &#8212; <a href="http://weeg.ru">weeg.ru</a> &#8212; не спрашивайте что это значит, потому что просто свободный короткий домен. Пусть будет именем собственным.</p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2011/01/ukorotnyalka-url-dlya-sebya/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Отпуск, осень и не только</title>
		<link>http://multed.net/2008/09/otpusk_osen_i_ne_tolko/</link>
		<comments>http://multed.net/2008/09/otpusk_osen_i_ne_tolko/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 10:23:50 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Daily]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[учеба]]></category>

		<guid isPermaLink="false">http://multed.net/?p=106</guid>
		<description><![CDATA[Недельку назад я взял отпуск &#171;на поучиться&#187;. Закрыть немножко долгов, вылезших после восстановления на 5 курс, немного отдохнуть, ну и в этом духе. Самое интересное &#8212; постоянное чувство то ли субботы, то ли воскресенья вот уже полторы недели (-% А еще &#8212; взял халтурок, теперь работаю дома, ломаю голову над тем, как бы из WordPress&#8217;a [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fotpusk_osen_i_ne_tolko%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fotpusk_osen_i_ne_tolko%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Недельку назад я взял отпуск &#171;на поучиться&#187;. Закрыть немножко долгов, вылезших после восстановления на 5 курс, немного отдохнуть, ну и в этом духе. Самое интересное &#8212; постоянное чувство то ли субботы, то ли воскресенья вот уже полторы недели (-%</p>
<p>А еще &#8212; взял халтурок, теперь работаю дома, ломаю голову над тем, как бы из WordPress&#8217;a сделать аццкий мега-сайт (-: нет, не пинайте меня, про SLAED, Joomla я в курсе. Но все не то как-то. Функционал есть, но не тот, который мне нужен. Пишу вот теперь модули к WP на PHP. Ужаснах.</p>
<p>Голову ломаю и так и этак, а все почему: опыта не хватает. Но, будем надеяться, что все окончится удачно для всех.</p>
<p>Пару дней ездил на учебу. Дух студенчества &#8212; это уже что-то такое далекое, что даже не хочется в это окунаться опять. Наверное правильно говорят, что всему свое время. Хотя подумалось тут же, что главное начать, а потом втянусь.</p>
<p>Так что, отпуск удается.</p>
<p>___</p>
<p>И еще:</p>
<p>На iwalk.ru не просто про летчика, а <a href="http://iwalk.ru/letchik-lexa.htm" target="_blank">про летчика Лёху</a> (-; а у Креативного кота вы найдете про <a href="http://blog.mons.ws/?p=260" target="_blank">расценки на иллюстрации</a> за бугром.</p>
<p>Обозреватель интернета Тёмма Майнас делится <a href="http://tyomma.ru/whatcha-gonna-do-with-blogun/" target="_blank">своими заметками о новшествах в работе Блогуна</a>.</p>
<p>А <a href="http://omnenie.ru/chubajs-ex-chubajs%e2%80%a6/" target="_blank">Александр Горбунов задается вопросом</a> &#171;Почему же Чубайс?&#187; и вспоминает слово &#171;ваучер&#187;. Я его уже даже забыл давно (-:</p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2008/09/otpusk_osen_i_ne_tolko/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Perl и многопоточность. Возвращение к програмированию</title>
		<link>http://multed.net/2008/09/perl_multithreading_programming/</link>
		<comments>http://multed.net/2008/09/perl_multithreading_programming/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 14:36:26 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Daily]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[multitreads]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://multed.net/?p=95</guid>
		<description><![CDATA[Да-да. Я снова начал програмировать на Perl. Хочу написать небольшой поисковичек по локальным ftp-ресурсам моей домашней сети. А прежде всего столкнулся с проблемой сканирования сети на предмет доступных ftp-серверов с разрешеным доступом для анонимуса. Набросав небольшой скриптец, запустив его &#8212; понял, что для сканирования сети 10/10 потребуется 5*255*255*63 = 20482875 секунд или больше 250 дней [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fperl_multithreading_programming%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2008%2F09%2Fperl_multithreading_programming%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Да-да. Я снова начал програмировать на Perl. Хочу написать небольшой поисковичек по локальным ftp-ресурсам моей домашней сети. А прежде всего столкнулся с проблемой сканирования сети на предмет доступных ftp-серверов с разрешеным доступом для анонимуса. Набросав небольшой скриптец, запустив его &#8212; понял, что для сканирования сети 10/10 потребуется 5*255*255*63 = 20482875 секунд или больше 250 дней (-; и тогда я подумал: &#171;к черту! а зачем придумали многопоточность?&#187; к тому же моя домашняя FreeBSD 7.0 с двуядерным Xeon E3110 достаточно хорошо должна стправиться с такими приложениями. И я начал копать в эту сторону.</p>
<p>Для начала надо было пересобрать Perl с поддержкой многопоточности. Сделано.</p>
<p>Можно создавать потоки как с контролем за жизнью, так и без контроля (типа запустил и забыл).</p>
<p>В первом случае используем:</p>
<blockquote><p>threads-&gt;create(\&amp;mySub,$param)-&gt;join;</p></blockquote>
<p>А во втором:</p>
<blockquote><p>threads-&gt;create(\&amp;mySub,$param)-&gt;detach;</p></blockquote>
<p>Ежели нам надо запустить кучу тредов и не дать основному скрипту закончить работу до окончания работы потоков, можно использовать такую конструкцию:</p>
<blockquote><p>foreach (1..$numThreads) {<br />
threads-&gt;create(\&amp;mySub,$param);<br />
};</p>
<p>foreach (threads-&gt;list) { $_-&gt;join; };</p></blockquote>
<p><strong>list</strong> &#8212; возвращает список потоков, для которых еще не применили join или detach.</p>
<p>Ну вот и основное, что я пользую нынче в многопоточных приложениях на Perl. Надеюсь, не последний пост на эту тему (-;</p>
<p>____</p>
<p>И еще:</p>
<p>Интересный <a href="http://www.ravadir.ru" target="_self">SEO-блог</a> Дмитриева Романа.</p>
<p>Дракасмит <a href="http://drakasmit.ru/re-dizajn-bloga/" target="_blank">сделал RE: дизайн</a>, а у <a href="http://blog.mons.ws/?p=252" target="_blank">Креативного кота глючит CuteFTP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2008/09/perl_multithreading_programming/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Домашнее тестирование производительности. Часть первая.</title>
		<link>http://multed.net/2008/07/test_proizvoditelnosti_odin/</link>
		<comments>http://multed.net/2008/07/test_proizvoditelnosti_odin/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 05:37:25 +0000</pubDate>
		<dc:creator>Евгений Лисовский</dc:creator>
				<category><![CDATA[Daily]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[сайт]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://multed.net/?p=41</guid>
		<description><![CDATA[Вчера решил заняться тестированием производительноси домашнего сайта на моей новой машинке. Сайт из себя представляет набор скриптов на PERL, данные хранятся в MySQL, крутится все по управлением Apache 2.2, на FreeBSD 7.0-STABLE-amd64. Тестирование производил по методике. описанной тут. Первая страница, с десятью запросами в секунду, результаты: 218 fetches, 373 max parallel, 578562 bytes, in 60.1658 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmulted.net%2F2008%2F07%2Ftest_proizvoditelnosti_odin%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmulted.net%2F2008%2F07%2Ftest_proizvoditelnosti_odin%2F&amp;source=multed_net&amp;style=normal&amp;service=retwt.me&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Вчера решил заняться тестированием производительноси домашнего сайта на моей новой машинке.</p>
<p>Сайт из себя представляет набор скриптов на PERL, данные хранятся в MySQL, крутится все по управлением Apache 2.2, на FreeBSD 7.0-STABLE-amd64. Тестирование производил по методике. описанной <a href="http://www.opennet.ru/base/sys/apache_tune_bsd.txt.html" target="_blank">тут</a>.</p>
<p>Первая страница, с десятью запросами в секунду, результаты:</p>
<blockquote><p>218 fetches, 373 max parallel, 578562 bytes, in 60.1658 seconds<br />
2653.95 mean bytes/connection<br />
3.62332 fetches/sec, 9616.13 bytes/sec<br />
msecs/connect: 0.240661 mean, 0.556 max, 0.064 min<br />
msecs/first-response: 9699.27 mean, 34719.9 max, 207.924 min<br />
210 bad byte counts<br />
HTTP response codes:<br />
code 200 &#8212; 109</p></blockquote>
<p>Небыстро, подумал я. Неужно, PERL такой медленный получается? Или просто код неоптимизированый? Написал на Коленке быстренько скрипт на php, выбирающий все записи из таблицы (более тысячи записей, размер табицы 1.8 Мегабайт). Результаты:</p>
<blockquote><p>598 fetches, 11 max parallel, 1.06257e+09 bytes, in 60 seconds<br />
1.77688e+06 mean bytes/connection<br />
9.96666 fetches/sec, 1.77096e+07 bytes/sec<br />
msecs/connect: 0.0724348 mean, 0.295 max, 0.048 min<br />
msecs/first-response: 174.208 mean, 999.469 max, 138.848 min<br />
HTTP response codes:<br />
code 200 &#8212; 598</p></blockquote>
<p>Молодец, PHP, все отдал. все быстренько. Своял такой же (тот же запрос, та же отдача) скрипт на PERL. Удивился:</p>
<blockquote><p>599 fetches, 1 max parallel, 1.06428e+09 bytes, in 60 seconds<br />
1.77676e+06 mean bytes/connection<br />
9.98333 fetches/sec, 1.7738e+07 bytes/sec<br />
msecs/connect: 0.0690417 mean, 0.217 max, 0.054 min<br />
msecs/first-response: 47.338 mean, 53.21 max, 47.066 min<br />
HTTP response codes:<br />
code 200 &#8212; 599</p></blockquote>
<p>При том, что время отдачи минимальное чуть больше, чем у php, perl более стабилен в хороших результатах. Продолжив эксперименты дальше &#8212; увеличил количество запросов до 50 в секунду, perl сдался:</p>
<blockquote><p>1780 fetches, 464 max parallel, 2.80196e+09 bytes, in 60.0368 seconds<br />
1.57413e+06 mean bytes/connection<br />
29.6485 fetches/sec, 4.66707e+07 bytes/sec<br />
msecs/connect: 106.043 mean, 3271.55 max, 0.052 min<br />
msecs/first-response: 3265.43 mean, 8278.56 max, 0.206 min<br />
203 bad byte counts<br />
HTTP response codes:<br />
code 200 &#8212; 1577</p></blockquote>
<p>У PHP:</p>
<blockquote><p>2992 fetches, 24 max parallel, 5.31642e+09 bytes, in 60.0002 seconds<br />
1.77688e+06 mean bytes/connection<br />
49.8665 fetches/sec, 8.86068e+07 bytes/sec<br />
msecs/connect: 0.208658 mean, 7.537 max, 0.049 min<br />
msecs/first-response: 156.402 mean, 5042.3 max, 138.581 min<br />
HTTP response codes:<br />
code 200 &#8212; 2992</p></blockquote>
<p>Львиная доля производительности при исполнения скрипта на PERL, тратится на запуск отдельного экземпляра PERL-интерпретатора, в отличие от исполняемого php-скрипта как модуля Apache. 50 запросов в секунду на моем домашнем сайтике &#8212; это фантастическая величина. Но, чтобы было все хорошо, надо либо переписывать все на php, либо экспериментировать с mod_perl, ну или заняться аццкой оптимизацией существующего кода. Но это уже совсем другая песня.</p>
]]></content:encoded>
			<wfw:commentRss>http://multed.net/2008/07/test_proizvoditelnosti_odin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

