<?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-7222418277782624552</id><updated>2012-02-16T12:54:40.125+04:00</updated><category term='apache'/><category term='eclipse'/><category term='smarty'/><category term='php'/><category term='subversion'/><title type='text'>Записки Idleco</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-4357860568266691153</id><published>2009-02-09T13:47:00.006+04:00</published><updated>2009-02-09T14:09:27.343+04:00</updated><title type='text'>Валидность домена с точкой на конце</title><content type='html'>Адреса вида server.ru./page.htm (с точкой после имени домена) тоже правильные, в чем можно убедиться, посетив, например, &lt;a href="http://www.google.com./search?hl=en&amp;q=hello"&gt;http://www.google.com./search?hl=en&amp;q=hello&lt;/a&gt;. Возникла задача - проверяя урл на правильность домена, не забыть про точку и убрать ее из адреса. Как сделать эффективнее проверку наличия точки? Вот в чем вопрос.&lt;br /&gt;&lt;br /&gt;Быстренько накидал тесты очевидных решений:&lt;br /&gt;&lt;pre&gt;$h = "subdomain.server.ru." ;&lt;br /&gt;&lt;br /&gt;function test1($h)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; if( !preg_match("|^([a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6})(\.?)$|", $h, $m) ) {&lt;br /&gt;  return 0;&lt;br /&gt; } &lt;br /&gt; if($m[2]) return $m[1];&lt;br /&gt; return $h;&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function test2($h)&lt;br /&gt;{&lt;br /&gt; if( !preg_match("|^[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}\.?$|", $h) ) {&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt; if(substr($h, -1) == '.') return substr($h, 0, -1);&lt;br /&gt; return $h;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Время выполнения 100.000 итераций каждого теста (PHP v5.2.5 Win32):&lt;br /&gt;&lt;pre&gt;test1 - 0.53170919418335 sec&lt;br /&gt;test2 - 0.44983506202698 sec&lt;/pre&gt;&lt;br /&gt;А если пресловутой точки нет в адресе, то второй тест отработает еще быстрее.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7222418277782624552-4357860568266691153?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/4357860568266691153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=4357860568266691153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4357860568266691153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4357860568266691153'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2009/02/blog-post.html' title='Валидность домена с точкой на конце'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-620417825954274242</id><published>2008-08-14T17:51:00.003+04:00</published><updated>2008-08-14T18:15:06.168+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='smarty'/><title type='text'>Сжатие вывода Smarty</title><content type='html'>У smarty есть возможность установить пользововательские фильтры для выводимого содержимого через register_outputfilter(). Например так можно сжать страницу:&lt;br /&gt;&lt;pre&gt;...&lt;br /&gt;$smarty-&gt;register_outputfilter('output_compress');&lt;br /&gt;...&lt;br /&gt;function output_compress($tpl_output, &amp;$smarty)&lt;br /&gt;{&lt;br /&gt;  if(headers_sent()) return $tpl_output;&lt;br /&gt;  header('Content-Encoding: deflate');&lt;br /&gt;  return gzdeflate($tpl_output, 4);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Но если при выполнении кода случится вывод Warning (т.е. display_errors = On), то вы не получите ожидаемого результата (Firefox 3 ругается на неподдерживаемый метод сжатия), т.к. текст этого предупреждения не попадает в $tpl_output и остается в буфере. В результате, на выходе часть содержимого будет не сжата, а заголовок сжатия будет послан.&lt;br /&gt;&lt;br /&gt;Чтобы избежать этого, использую такой подход:&lt;br /&gt;&lt;pre&gt;...&lt;br /&gt;function output_compress($tpl_output, &amp;$smarty)&lt;br /&gt;{&lt;br /&gt;  if(headers_sent()) return $tpl_output;&lt;br /&gt;  if($t = ob_get_contents()) {&lt;br /&gt;    $tpl_output = $t . $tpl_output;&lt;br /&gt;    ob_clean();&lt;br /&gt;  }&lt;br /&gt;  header('Content-Encoding: deflate');&lt;br /&gt;  return gzdeflate($tpl_output, 4);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7222418277782624552-620417825954274242?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/620417825954274242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=620417825954274242' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/620417825954274242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/620417825954274242'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2008/08/smarty.html' title='Сжатие вывода Smarty'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-6861099297969769372</id><published>2008-01-25T17:01:00.001+04:00</published><updated>2008-08-14T18:15:30.944+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Производительность хэш-функций в PHP 5.2</title><content type='html'>Неожиданно для себя обнаружил что в PHP (от v5.1.2) оказывается есть функция hash(), котороя поддерживает различные алгоритмы хэширования, в том числе md5 и sha1. Но, функция md5() &lt;a href="http://ru2.php.net/manual/ru/function.hash.php#73792"&gt;работает медленнее&lt;/a&gt; чем эквивалентная hash('md5'). Решил проверить и заодно узнать какие алгоритмы поддерживаются (на примере v5.2.5 под vista).&lt;br /&gt;&lt;br /&gt;Проверял примерно вот так:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$a =  hash_algos();&lt;br /&gt;$exclude = array('');&lt;br /&gt;&lt;br /&gt;test_md5();&lt;br /&gt;print "\n";&lt;br /&gt;&lt;br /&gt;foreach($a as $v)&lt;br /&gt;{&lt;br /&gt; if(!in_array($v, $exclude)) &lt;br /&gt;  test_algo($v);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#=== procs ==&lt;br /&gt;function test_algo($algo)&lt;br /&gt;{&lt;br /&gt; $time = microtime(1);&lt;br /&gt; $s = '';&lt;br /&gt; for($i=0; $i&lt;150000; $i++)&lt;br /&gt;  $s = hash($algo, 'is this string too long? maybe not! strlen=45');&lt;br /&gt; &lt;br /&gt; $time = microtime(1)-$time;&lt;br /&gt; print "$algo (" . strlen($s) . " bytes) - " . (number_format($time, 4)) ." s\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function test_md5()&lt;br /&gt;{&lt;br /&gt; $time = microtime(1);&lt;br /&gt; $s = '';&lt;br /&gt; for($i=0; $i&lt;150000; $i++)&lt;br /&gt;  $s = md5('is this string too long? maybe not! strlen=45');&lt;br /&gt; $time = microtime(1)-$time; &lt;br /&gt; print "function md5() - " . (number_format($time, 4)) ." s\n";&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Результаты:&lt;br /&gt;&lt;pre&gt;function md5() - 0.2412 s&lt;br /&gt;&lt;br /&gt;md2 (32 bytes) - 7.2568 s&lt;br /&gt;md4 (32 bytes) - 0.2991 s&lt;br /&gt;md5 (32 bytes) - 0.3149 s&lt;br /&gt;sha1 (40 bytes) - 0.3436 s&lt;br /&gt;sha256 (64 bytes) - 0.4768 s&lt;br /&gt;sha384 (96 bytes) - 1.2349 s&lt;br /&gt;sha512 (128 bytes) - 1.2481 s&lt;br /&gt;ripemd128 (32 bytes) - 0.5023 s&lt;br /&gt;ripemd160 (40 bytes) - 0.5224 s&lt;br /&gt;ripemd256 (64 bytes) - 0.4766 s&lt;br /&gt;ripemd320 (80 bytes) - 0.5418 s&lt;br /&gt;whirlpool (128 bytes) - 1.5320 s&lt;br /&gt;tiger128,3 (32 bytes) - 0.4329 s&lt;br /&gt;tiger160,3 (40 bytes) - 0.4403 s&lt;br /&gt;tiger192,3 (48 bytes) - 0.4572 s&lt;br /&gt;tiger128,4 (32 bytes) - 0.4657 s&lt;br /&gt;tiger160,4 (40 bytes) - 0.4757 s&lt;br /&gt;tiger192,4 (48 bytes) - 0.4854 s&lt;br /&gt;snefru (64 bytes) - 1.4405 s&lt;br /&gt;gost (64 bytes) - 1.3708 s&lt;br /&gt;adler32 (8 bytes) - 0.3449 s&lt;br /&gt;crc32 (8 bytes) - 0.2813 s&lt;br /&gt;crc32b (8 bytes) - 0.2896 s&lt;br /&gt;haval128,3 (32 bytes) - 0.5591 s&lt;br /&gt;haval160,3 (40 bytes) - 0.5566 s&lt;br /&gt;haval192,3 (48 bytes) - 0.5714 s&lt;br /&gt;haval224,3 (56 bytes) - 0.5747 s&lt;br /&gt;haval256,3 (64 bytes) - 0.5768 s&lt;br /&gt;haval128,4 (32 bytes) - 0.6543 s&lt;br /&gt;haval160,4 (40 bytes) - 0.6726 s&lt;br /&gt;haval192,4 (48 bytes) - 0.6576 s&lt;br /&gt;haval224,4 (56 bytes) - 0.6546 s&lt;br /&gt;haval256,4 (64 bytes) - 0.6607 s&lt;br /&gt;haval128,5 (32 bytes) - 0.7046 s&lt;br /&gt;haval160,5 (40 bytes) - 0.7097 s&lt;br /&gt;haval192,5 (48 bytes) - 0.7188 s&lt;br /&gt;haval224,5 (56 bytes) - 0.7197 s&lt;br /&gt;haval256,5 (64 bytes) - 0.7221 s&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Действительно, так и есть (разница на 30%). Также проверил Fedora 8 с предустановленным PHP v5.2.4 - cоотношение примерно такое же (20%). Причем в PHP v5.2.0 под виндой производительноcnь md5() оказывается ниже в 3 (!) раза.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7222418277782624552-6861099297969769372?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/6861099297969769372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=6861099297969769372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/6861099297969769372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/6861099297969769372'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2008/01/php-52.html' title='Производительность хэш-функций в PHP 5.2'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-4056257557798125570</id><published>2007-06-20T16:44:00.000+04:00</published><updated>2007-06-20T17:01:55.096+04:00</updated><title type='text'>Шаблоны и движок: проблемы версий</title><content type='html'>В &lt;a href="http://idleco.blogspot.com/2007/06/blog-post.html"&gt;прошлом посте&lt;/a&gt; я упомянул о проблеме совместимости шаблонов разных версий скрипта. Имеется в виду ситуация, когда пользователь скрипта v1.0 изменил шаблоны, но появляется версия 1.5, где ряд шаблонов изменен (возможно существенно). И ему приходится вручную все переделывать, сравнивая разные версии шаблонов.&lt;br /&gt;&lt;br /&gt;Итак я пришел к следующим выводам.&lt;br /&gt;1. Не зашивать дизайн жестко в код скрипта.&lt;br /&gt;2. Не использовать XSL/XSLT, т.к. юзер наверняка не умеет с этим работать.&lt;br /&gt;3. Использовать Smarty в качестве шаблонизатора.&lt;br /&gt;4. Максимально загрузить CSS при верстке дизайна, как например на &lt;a href="http://www.habrahabr.ru/"&gt;Хабре&lt;/a&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/7222418277782624552-4056257557798125570?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/4056257557798125570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=4056257557798125570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4056257557798125570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4056257557798125570'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2007/06/blog-post_20.html' title='Шаблоны и движок: проблемы версий'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-5839312660090712042</id><published>2007-06-05T15:02:00.000+04:00</published><updated>2007-06-05T15:45:25.879+04:00</updated><title type='text'>Атрибуты нормального скрипта для продажи.</title><content type='html'>Что я думаю о том, какие возможности должен предоставлять коммерческий скрипт/движок.&lt;br /&gt;&lt;br /&gt;1. Удобный установщик. &lt;br /&gt;- скачиваем архив скрипта, распаковываем и заливаем папку на сервак;&lt;br /&gt;- залезаем через браузер на будущий сайт (или что там будет), где тут же выскакивает конфигуратор/установщик;&lt;br /&gt;- указываем данные по доступу к БД плюс некий минимум для работы, жмем "Next"&lt;br /&gt;- автоматом создаются все необходимые таблицы в БД, проверяются зависимости библиотек, доступность каталогов для записи и пр. В случае неудачи показывается описание ошибок и кнопка "Retry";&lt;br /&gt;- итак, финальное окно, возможно, с просьбой удалить какие-нибудь файлы установщика.&lt;br /&gt;&lt;br /&gt;2. Все настройки скрипта производятся только на сайте, т.е. не надо лезть в текстовые конфиги и править параметры там руками. Хотя сами настройки в таком файле и хранятся. :)&lt;br /&gt;&lt;br /&gt;3. Отделение кода обработки данных от представления данных, т.е. дизайн хранить в шаблонах, и использовать, например, smarty для отображения.&lt;br /&gt;&lt;br /&gt;4. Для удобства локализации на другие языки, вынести все возможные моменты в некие переменные и хранить их отдельно, например, в файле. Редактирование этих переменных, пожалуй, можно делать вручную.&lt;br /&gt;&lt;br /&gt;Вот тут есть неприятный момент, когда пользователь изменит шаблон под себя (я сторонник предоствления ему полного контроля отображения), а в новой версии скрипта какие-нибудь шаблоны будут изменены... И что после этого полноценную CMS делать?&lt;br /&gt;&lt;br /&gt;Хотя на создании различных дизайнов шаблонов тоже бизнес делать можно. :) Вообщем у меня на этот счет есть кучка мыслей, когда определюсь окончательно - выложу.&lt;br /&gt;&lt;br /&gt;5. Поддержка скрипта.&lt;br /&gt;- написание мануалов по установке и использованию;&lt;br /&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/7222418277782624552-5839312660090712042?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/5839312660090712042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=5839312660090712042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/5839312660090712042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/5839312660090712042'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2007/06/blog-post.html' title='Атрибуты нормального скрипта для продажи.'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-822277810480691121</id><published>2007-04-22T16:19:00.000+04:00</published><updated>2007-04-23T11:10:01.811+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Eclipse + Subversion. Начало.</title><content type='html'>Давно хотел попробовать что-то из серии CVS, но как говорится "руки не доходили". Понадобилось это мне потому, что периодически возникает ситуация при разработке проекта, когда нужно вести разработку новой версии одновременно с текущей, а потом новую версию сливать в текущую.&lt;br /&gt;&lt;br /&gt;Остановился на Subversion, не знаю даже почему, т.к. в этом деле новичок. Доку по ней можно почитать тут: &lt;a href="http://svnbook.red-bean.com/"&gt;http://svnbook.red-bean.com&lt;/a&gt;. Все установки производил на компе под управлением Windows XP SP2.&lt;br /&gt;&lt;br /&gt;Бинарники Subversion под винду берем &lt;a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91"&gt;здесь&lt;/a&gt;. Мне попался svn-1.4.3-setup.exe, который я поставил в c:\Subversion. В процессе установки отказался от пункта модификации конфига апача.&lt;br /&gt;&lt;br /&gt;Если брать zip-архив, то придется создать переменную окружения APR_ICONV_PATH = c:\subversion\iconv, и в PATH добавить путь c:\subversion\bin.&lt;br /&gt;&lt;br /&gt;Настраиваем Apache.  В httpd.conf включим модули DAV, добавим 2 модуля SVN и прописываем Location с указанием хранилища репозиториев:&lt;br /&gt;&lt;code&gt;LoadModule dav_module modules/mod_dav.so&lt;br /&gt;LoadModule dav_fs_module modules/mod_dav_fs.so&lt;br /&gt;LoadModule dav_svn_module "C:/Subversion/bin/mod_dav_svn.so"&lt;br /&gt;LoadModule authz_svn_module "C:/Subversion/bin/mod_authz_svn.so"&lt;/code&gt;&lt;br /&gt;...&lt;br /&gt;&lt;code&gt;&amp;lt;Location /svn&gt;&lt;br /&gt;DAV svn&lt;br /&gt;SVNParentPath d:\repos&lt;br /&gt;&amp;lt;/Location&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Создание репозитория делается с помощью команды&lt;br /&gt;&lt;code&gt;svnadmin create --fs-type fsfs testproject&lt;/code&gt;&lt;br /&gt;(вместо fsfs можно bdb), текущим каталогом при этом должен быть SVNParentPath, т.е. d:\repos.&lt;br /&gt;&lt;br /&gt;Теперь добавим поддержку SVN в Eclipse. Для этого используем плагин &lt;a href="http://subclipse.tigris.org/"&gt;subclipse&lt;/a&gt;. Там все расписано и установка не займет проблем. В случае отсутствия инета можно использовать zipped-версию, скачанную на другом компе. Я брал site-1.2.0.zip и устанавливал как "New archived Site".&lt;br /&gt;&lt;br /&gt;В eclipse появится перспектива SVN Repository Exploring, и там указываем наш тестовый репозиторий проекта: http://localhost/svn/testproject. Через "New remote folder" в контекстном меню создаем нужные папки/ветки разработки:&lt;br /&gt;trunk - текущая (основная) разработка,&lt;br /&gt;tags - тут будут папки с релизами,&lt;br /&gt;branches - а тут будут временные ветки будущих версий (они потом сольются в trunk).&lt;br /&gt;&lt;br /&gt;Чтобы поместить существующий проект Eclipse в SVN используем контекстное меню "Team - Share project" в окне, скажем, "Navigator". Выбираем тип репозитория SVN. В качестве Repository Location указываем существующее http://localhost/svn/testproject, потом имя/папку проекта, небольшой коммент по импорту, жмем Finish и выбираем файлы для commit.&lt;br /&gt;&lt;br /&gt;Управление SVN ведется через контекстное меню Team. Основные команды - update и commit. Но об этом в другой раз.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7222418277782624552-822277810480691121?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/822277810480691121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=822277810480691121' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/822277810480691121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/822277810480691121'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2007/04/eclipse-subversion.html' title='Eclipse + Subversion. Начало.'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7222418277782624552.post-4843468574025541004</id><published>2007-04-21T14:16:00.000+04:00</published><updated>2007-04-21T18:26:36.055+04:00</updated><title type='text'>Why?</title><content type='html'>Зачем открыл блог? Вообще говоря, планирую его использовать как интернет-блокнот. Чтобы не держать в голове описания некоторых не часто встречающихся операций и прочей ерунды, и иметь к ним доступ из любого места: домашнего или рабочего компов, ноутбука, кпк и бог знает откуда еще.&lt;br /&gt;&lt;br /&gt;Еще думаю, что эти записи могут кому-нибудь пригодиться. И дабы сильно не заморачиваться с синхронизацией всех этих девайсов и было принято решение о создании блога.&lt;br /&gt;&lt;br /&gt;Почему на Blogger? Да потому что я постоянно залогинен у гугла: Google Reader, GMail, etc. И мне удобно иметь один аккаунт на все. Ну и  пусть "большой брат все видит"... :) Тем более, что немного поигравшись с livejournal.com мне показалось, что медленноват он, местами черезчур.&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/7222418277782624552-4843468574025541004?l=idleco.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://idleco.blogspot.com/feeds/4843468574025541004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7222418277782624552&amp;postID=4843468574025541004' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4843468574025541004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7222418277782624552/posts/default/4843468574025541004'/><link rel='alternate' type='text/html' href='http://idleco.blogspot.com/2007/04/why.html' title='Why?'/><author><name>Idleco</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
