<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:_radiant_</id>
  <title>пустота</title>
  <subtitle>нет мыслей</subtitle>
  <author>
    <name>Дмитрий Волков</name>
  </author>
  <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/"/>
  <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom"/>
  <updated>2007-10-17T13:53:33Z</updated>
  <lj:journal username="_radiant_" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://users.livejournal.com/_radiant_/data/atom" title="пустота"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:54731</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/54731.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=54731"/>
    <title>{nnov} "Грустно, девицы.."</title>
    <published>2007-10-17T13:53:33Z</published>
    <updated>2007-10-17T13:53:33Z</updated>
    <content type="html">В Питере &lt;a href="http://www.jug.ru"&gt;JUG&lt;/a&gt;, &lt;a href="http://spbhug.folding-maps.org/"&gt;SPbHUG&lt;/a&gt; [&lt;a href="http://antilamer.livejournal.com/222445.html"&gt;1&lt;/a&gt;, &lt;a href="http://antilamer.livejournal.com/222445.html"&gt;2&lt;/a&gt;]  &lt;br /&gt;В Москве тот же JUG ;), а так же лекции приглашенных ученых в Яндексе (и вроде в Google, если мне память не изменяет).&lt;br /&gt;В Киеве &lt;a href="http://exception.org.ua/"&gt;Exception&lt;/a&gt; Python Seminar.&lt;br /&gt;В Днепропетровске &lt;a href="http://singalen.livejournal.com/tag/КАП"&gt;КАП&lt;/a&gt; (Клуб анонимных программистов).&lt;br /&gt;В Новосибирске "&lt;a href="http://mr-aleph.livejournal.com/101952.html"&gt;слет джедаев академгородка&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;А мне шо, разорваться что ли?&lt;/strike&gt;&lt;br /&gt;А у нас в Нижнем, на сколько известно, ничего такого нет.&lt;br /&gt;Было в студенческие времена &lt;a href="http://www.microsoft.unn.ru/?doc=531"&gt;NNUG/MUG&lt;/a&gt;, когда мои однокурсники были Microsoft Student Consultant, а сейчас это всё как-то заглохло.&lt;br /&gt;Меня все гложет мысль организовать такую же тусовку... &lt;br /&gt;Проблемы, которые вижу сейчас &amp;mdash; люди и место проведения.&lt;br /&gt;&lt;br /&gt;Есть ли среди моих френдов те, которым будут интересны подобные встречи?&lt;br /&gt;Возможные темы (это из того, что давно висит в моём todo-list'e :), но список спокойно пополняемый ): &lt;br /&gt;1. "smart" languages [Haskell, Erlang, Lisp и т.д. Ruby, Python], методики и инструменты для оптимизаций приложений, разработка приложений под большой нагрузкой и тому подобное.&lt;br /&gt;2. Обзор разных библиотек и фреймворков, например, для веб-разработок.&lt;br /&gt;3. Или даже что-то из основ, для повторения или усвоения (в зависимости от уровня): типа design patterns, java/c#/c++ puzzlers...&lt;br /&gt;4. Дайджест и комментарии околокомпьютерных или околопрограммистких  новостей [ну я не знаю, что-то вроде предлагаемых фичей в JDK 7, C# 3.0]&lt;br /&gt;&lt;br /&gt;По каким-то из этих тем составить доклады могу я, но хотелось бы так же упросить умных людей, уже опробовавших разные интересные вещи [типа &lt;a href="http://yorool-gui.livejournal.com/161439.html#cutid1"&gt;HAppS&lt;/a&gt; &amp;mdash; это как бы намёк к &lt;span class='ljuser' lj:user='yorool_gui' style='white-space: nowrap;'&gt;&lt;a href='http://yorool-gui.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://yorool-gui.livejournal.com/'&gt;&lt;b&gt;yorool_gui&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; ;)]&lt;br /&gt;&lt;br /&gt;С местом вообще непонятно: если людей будет мало, то возможно попытаться организовывать встречи просто в кафешках (но этот вариант как-то не очень нравится). &lt;br /&gt;Или в свободных аудиториях в том же университете.&lt;br /&gt;&lt;br /&gt;Как вариант, было бы замечательно раскрутить большие нижегородские it-конторы на conference room, но это пока девичьи мечты :-)&lt;br /&gt;&lt;br /&gt;Так вот, кому-нибудь из нижегородских программистов подобное тоже интересно?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:54205</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/54205.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=54205"/>
    <title>{java, swing} Записки новичга: календарик</title>
    <published>2007-04-05T11:11:57Z</published>
    <updated>2007-04-06T10:57:33Z</updated>
    <category term="swing"/>
    <category term="java"/>
    <category term="howto"/>
    <category term="Записки новичга"/>
    <content type="html">В качестве календарика в нашем проекте используется &lt;a href="http://www.java.net/download/javadesktop/jcalendar/"&gt;jCalendar&lt;/a&gt;.&lt;br /&gt;Компонент нареканий не вызывает, все хорошо в стандартной комплектации, кроме одного:&lt;br /&gt;Невозможно установить дату программным путём, при создании компонента текущей устанавливается сегодняшняя дата (как минимум, это верно для используемой у нас версии 0.1, самой последней на данный момент). &lt;br /&gt;&lt;br /&gt;Понятно, что это не в какие ворота :)&lt;br /&gt;Поразглядывал исходники, никакой too much magic не обнаружил, добавил в итоге к публичному интерфейсу &lt;i&gt;jCalendar&lt;/i&gt; метод &lt;i&gt;void setDate(Date newDate)&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Исходники прилагаются (никакого rocket science, просто выкладываю для сокращения времени другим).&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;pre&gt;# diff пакета &lt;b&gt;com.greef.ui.calendar&lt;/b&gt;

diff jcalendar.old/CalendarTableModel.java jcalendar.new/CalendarTableModel.java
126c126,136
&amp;lt; 
&amp;mdash;-
&amp;gt;     
&amp;gt;     /**
&amp;gt;      * Sets the month and year for this calendar.
&amp;gt;      * @param month the month for this calendar
&amp;gt;      * @param year the year for this calendar
&amp;gt;      * 
&amp;gt;      * added by dvolkov
&amp;gt;      */
&amp;gt;     public void setDate(Date newDate) {
&amp;gt;         calendar.setTime(newDate);
&amp;gt;     }
diff jcalendar.old/JCalendar.java jcalendar.new/JCalendar.java
535a536,561
&amp;gt;     /** 
&amp;gt;      * Sets this month/year calendar to the month/year of the selecteddate.
&amp;gt;      *  
&amp;gt;      * added by dvolkov
&amp;gt;      */
&amp;gt;     public void setDate(Date newDate) {
&amp;gt;         int oldMonthValue = getMonth();
&amp;gt;         int oldYearValue = getYear();
&amp;gt;         calendarTable.getCalendarModel().setDate( newDate );
&amp;gt;         updateControlsFromTable();
&amp;gt;         // fire property change
&amp;gt;         int newMonthValue = getMonth();
&amp;gt;         if (oldMonthValue != newMonthValue) {
&amp;gt;             firePropertyChange(MONTH_PROPERTY, oldMonthValue, newMonthValue);
&amp;gt;         }
&amp;gt;         int newYearValue = getYear();
&amp;gt;         if (oldYearValue != newYearValue) {
&amp;gt;             firePropertyChange(YEAR_PROPERTY, oldYearValue, newYearValue);
&amp;gt;         }
&amp;gt;         // clear selection when changing the month in view
&amp;gt;         if (oldMonthValue != newMonthValue &amp;&amp; oldYearValue != newYearValue) {
&amp;gt;             calendarTable.getSelectionModel().clearSelection();
&amp;gt;         }
&amp;gt;         calendarTable.setSelectedDate(newDate);
&amp;gt;     }
&amp;gt;     
diff jcalendar.old/JCalendarTable.java jcalendar.new/JCalendarTable.java
104a105,122
&amp;gt; 
&amp;gt;     public boolean setSelectedDate(Date newDate) {
&amp;gt;         int rows = getRowCount();
&amp;gt;         int cols = getColumnCount();
&amp;gt;         for (int i = 0; i &amp;lt; rows; i++) {
&amp;gt;             for (int j = 0; j &amp;lt; cols; j++) {
&amp;gt;             	if ( calendarModel.getCalendarAt(i, j).getTime().equals(newDate) ) {            		
&amp;gt;             	    changeSelection(i, j, false, false);
&amp;gt;             	    return true;            		
&amp;gt;             	}
&amp;gt;             }
&amp;gt;         }        
&amp;gt;         return false;
&amp;gt;     }&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:53995</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/53995.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=53995"/>
    <title>{inet} странного хочется</title>
    <published>2007-03-28T12:26:27Z</published>
    <updated>2007-03-28T12:26:27Z</updated>
    <content type="html">Возник вопрос.&lt;br /&gt;&lt;br /&gt;Дано: &lt;br /&gt;1. есть у меня доступ к инету через конторский прокси с http авторизацией. &lt;br /&gt;2. несколько программ, которые пытаются дорваться до инета напрямую (у них нет возможности настройки параметров доступа в интернет).&lt;br /&gt;Хочется: &lt;br /&gt;Поставить у себя на компе прокси, в котором форвардить все такие прямые запросы на вышестоящий.&lt;br /&gt;&lt;br /&gt;Собственно вопрос:&lt;br /&gt;С помощью чего это можно сделать наиболее просто (ОС: WinXP), &lt;br /&gt;или как вообще эту проблему решить, &lt;br /&gt;или (как самый грустный ответ) man что?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:53735</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/53735.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=53735"/>
    <title>{java, swing} Записки новичга: продолжительные задачи</title>
    <published>2007-03-27T12:35:10Z</published>
    <updated>2007-04-06T10:57:17Z</updated>
    <category term="swing"/>
    <category term="java"/>
    <category term="howto"/>
    <category term="Записки новичга"/>
    <content type="html">Интересный подпроект SwingWorker у &lt;a href="https://swinglabs.dev.java.net/"&gt;SwingLabs&lt;/a&gt;.&lt;br /&gt;Процитирую описание:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 60px"&gt;&lt;span style="font: bold 120% serif"&gt;&amp;laquo;&lt;/span&gt;&lt;div style="padding: 10px; color: #000000; background: #f0f0f0; margin-left: 20px; margin-right: 40px;"&gt;  When writing a multi-threaded application using Swing, there are  two constraints to keep in mind: (refer to     &lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html"&gt;    How to Use Threads    &lt;/a&gt; for more details): &lt;br /&gt;&lt;ul&gt;    &lt;li&gt; Time-consuming tasks should not be run on the &lt;i&gt;Event      Dispatch Thread&lt;/i&gt;. Otherwise the application becomes unresponsive.    &lt;/li&gt;    &lt;li&gt; Swing components should be accessed  on the &lt;i&gt;Event      Dispatch Thread&lt;/i&gt; only.    &lt;/li&gt;  &lt;/ul&gt;  &lt;br /&gt;These constraints mean that a GUI application with time intensive    computing needs at least two threads:  1) a thread to perform the lengthy    task and 2) the &lt;i&gt;Event Dispatch Thread&lt;/i&gt; (EDT) for all GUI-related    activities.  This involves inter-thread communication which can be    tricky to implement.  &lt;br /&gt;&lt;b&gt;SwingWorker&lt;/b&gt; is designed for situations where you need to have a long     running task run in a background thread and provide updates to the UI     either when done, or while processing.&lt;br /&gt;&lt;/div&gt;&lt;span style="font: bold 120% serif"&gt;&amp;raquo;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="https://swingworker.dev.java.net/"&gt;SwingWorker&lt;/a&gt; @ &lt;a href="https://swinglabs.dev.java.net/"&gt;SwingLabs&lt;/a&gt;     &lt;br /&gt;&lt;br /&gt;Прост, юзабелен, нареканий пока нет.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:53492</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/53492.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=53492"/>
    <title>{java} Записки новичга: и ещё о всплывающих подсказках</title>
    <published>2007-03-20T14:21:35Z</published>
    <updated>2007-04-03T12:30:00Z</updated>
    <category term="swing"/>
    <category term="java"/>
    <category term="howto"/>
    <category term="Записки новичга"/>
    <content type="html">В догонку к предыдущей записи &amp;mdash; о странном поведении всплывающих подсказок (в swing за это отвечает &lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/components/tooltip.html"&gt;ToolTip&lt;/a&gt;) в таблицах.&lt;br /&gt;&lt;br /&gt;Есть у нас MyField, наследник от JPanel, содержащий в себе текст о статусе (JLabel) и три кнопки, тот самый из предыдущего поста, который отображается с помощью CellRenderer. У кнопок этих прописывается при создании ToolTip.&lt;br /&gt;&lt;br /&gt;Как выяснилось, если мы специально не выделяем кликом ячейку с этим jpanel, то tooltip будет браться именно у MyField (в котором, очевидно, ничего нет).&lt;br /&gt;Иначе getToolTipText сам вызовется у нужной кнопки.&lt;br /&gt;Значит, придется писать "прокси".&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Решение: добавляем метод к MyField.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public String getToolTipText(MouseEvent event) {
  String tip = null;
  Component c = getComponentAt( event.getPoint() );
  if (c instanceof JComponent) {
    tip = ((JComponent)c).getToolTipText(event);
  } else {
    tip = getToolTipText();        	
  }    	
  return tip;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:53082</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/53082.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=53082"/>
    <title>{java} Записки новичга: о странностях с JTable и CellRenderer</title>
    <published>2007-03-20T13:29:22Z</published>
    <updated>2007-04-03T12:29:48Z</updated>
    <category term="swing"/>
    <category term="java"/>
    <category term="howto"/>
    <category term="Записки новичга"/>
    <content type="html">Наткнулся на занимательный баг в JTable или его наследниках, точно не отследил. &lt;br /&gt;Потрачено было дня три, так что стоит записать конечный результат.&lt;br /&gt;&lt;br /&gt;В проекте используется компонент JXTreeTable из пакета &lt;a href="https://swingx.dev.java.net/"&gt;swingx&lt;/a&gt;. &lt;font size="-2"&gt;[обратите внимание на проекты этой &lt;a href="https://swinglabs.dev.java.net/"&gt;SwingLabs&lt;/a&gt;. Вполне возможно, эти компоненты сильно облегчат вам жизнь при разработке клиентских приложений...]&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;Компонент использовался для древовидного отображения списка неких запросов с автоматическим обновлением их состояний (статусов), ну и кнопками для действий над конкретным запросом (удалить, просмотреть детали и т.п.). &lt;br /&gt;Последнее (состояния и кнопки) отображалась как колонка с реализациями &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/TableCellRenderer.html"&gt;TableCellRenderer&lt;/a&gt; и &lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/table/TableCellEditor.html"&gt;TableCellEditor&lt;/a&gt; [что такое, как с этим работать &amp;mdash; rtfm].&lt;br /&gt;&lt;br /&gt;То, что до меня сразу не дошло, поэтому отмечу:&lt;br /&gt;1. CellRenderer отвечает только за отображение, то есть видимо заставляет отрисовываться переданный ему компонент на фиктивном Graphic, и уже выкидывает изображение "наверх". Он не занимается трансляцией событий от ячейки.&lt;br /&gt;2. Для такой трансляции используется CellEditor [а так же, и вообще для сигнализирования, что ячейка редактируется]&lt;br /&gt;3. Фактически, при обыкновенном клике на кнопку (точнее, на изображение кнопки ;) ) внутри ячейки, сначала ячейка объявляется редактируемой (и выделенной), поэтому у нее ищется CellEditor, у которого берется настоящий компонент и которому кидаются сообщения.&lt;br /&gt;&lt;br /&gt;После такого изложения, всё это кажется логично и очевидно, но нигде прописано не было, поэтому и было потрачено столько времени на отыскание причины бага (см. ниже).&lt;br /&gt;А полагаться на отвлечённую логику рефлексы программиста мне не позволили :)&lt;br /&gt;&lt;br /&gt;В самой программе случилось так, что при обновлении любого запроса выделение строки теряется. На сколько я могу предположить, из-за того что раскрывается путь до обновленной ноды со статусом запроса. Подозрения два: &lt;br /&gt;1. &lt;code&gt;treeTableModel.reload(node) // TreeNode node &amp;mdash; та самая обновляемая "строка"&lt;/code&gt;&lt;br /&gt;2. &lt;code&gt;treeTable.expandPath( node.getPath() )&lt;/code&gt;&lt;br /&gt;Главное, что при этом редактируемая ячейка продолжала отображаться как выделенная.&lt;br /&gt;Т.е., если до этого мы кликали на обыкновенную ячейку &amp;mdash; всё замечательно, нет выделенной строки. &lt;br /&gt;Если на "усовершенствованную" Renderor'ом и Editor'ом ячейку &amp;mdash; оставалось выделение именно её, сама строка не выделяется.&lt;br /&gt;Кто из цепочки JXTreeTable - JTable в этом странном поведении виноват, не знаю.&lt;br /&gt;&lt;br /&gt;В итоге, пришлось добавить в код:&lt;br /&gt;&lt;code&gt;if (treeTable.getCellEditor() != null) treeTable.getCellEditor().stopCellEditing();&lt;/code&gt;&lt;br /&gt;И наступил хэппи-энд.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Примечание:&lt;/b&gt;&lt;br /&gt;Для того, чтобы этот баг появился нужно, чтобы текущая ячейка вообще выделялась :)&lt;br /&gt;Выделением ячеек со своим CellRenderer, как выяснилось, должен заниматься сам Renderer:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
  JComponent c = (JComponent) value; // у меня в tablemodel лежит уже сам компонент
  if (isSelected) {
    c.setForeground(table.getSelectionForeground());
    c.setBackground(table.getSelectionBackground());
  }
  return c;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Автор для RTFM использовал:&lt;br /&gt;1. JavaDoc для swing и расширения swingx &lt;font size="-2"&gt;[и результаты их дебага, благо большая часть исходников есть и того, и другого  :)]&lt;/font&gt;&lt;br /&gt;2. Matthew Robinsin, Pavel Vorobiev, Java Swing, 2nd Edition, 2004 &lt;font size="-2"&gt;[ближе к учебнику, много примеров с объяснениями "на пальцах"]&lt;/font&gt;&lt;br /&gt;3. O'Reilly, Robert Ecksetin, Marc Loyd, Dave Wood, Java Swing, 1998 &lt;font size="-2"&gt;[краткий курс]&lt;/font&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:52532</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/52532.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=52532"/>
    <title>{java} Записки новичга: JavaHelp</title>
    <published>2007-03-02T10:37:14Z</published>
    <updated>2007-04-03T12:29:35Z</updated>
    <category term="java"/>
    <category term="howto"/>
    <category term="Записки новичга"/>
    <content type="html">&lt;b&gt;Дано:&lt;/b&gt; нужно создать справочную систему для клиентской программы на java.&lt;br /&gt;&lt;br /&gt;Судя по гуглу, широко известный ответ: &lt;a href="http://java.sun.com/products/javahelp/"&gt;&lt;b&gt;JavaHelp&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;Опять же, других распространенных вариантов вроде нет. &lt;i&gt;(Ошибаюсь?)&lt;/i&gt;&lt;br /&gt;В дистриб входят и примеры, и большая справка &amp;mdash; гуд, я пока отмечу вещи, которые мне пришлось сделать (jfyi: у меня версия 2.0.2)&lt;br /&gt;&lt;br /&gt;0. Текст для помощи сохраняется в html файлах.&lt;br /&gt;Различные параметры поисковой системы (кол-во окон, их типы, местоположения, используемые кнопки и функции, замены стандартных иконок) указываются в так называемом help set. Там же прописываются, как html разбиваются на темы в поисковой системе.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;1. Для проекта взять из &lt;i&gt;/javahelp/lib&lt;/i&gt; файлы &lt;i&gt;jh.jar&lt;/i&gt; (по умолчанию), а если нужен ещё и поиск по справке &amp;mdash; &lt;i&gt;jhall.jar&lt;/i&gt;. &lt;font size="-2"&gt;[есть другие варианты. rtfm]&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;2. Для работы нужно будет разобраться с понятиями &lt;i&gt;HelpSet&lt;/i&gt;, &lt;i&gt;HelpBroker&lt;/i&gt;&amp;mdash; rtfm. Как провести инициализацию можно посмотреть в примерах.&lt;br /&gt;&lt;u&gt;NB&lt;/u&gt;: для загрузки help set, javahelp по понятным причинам использует &lt;i&gt;ClassLoader&lt;/i&gt;, так что: &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;а. пропишите путь к файлу, причём такой, чтобы не отличался при запуске из под eclipse &lt;font size="-2"&gt;[your IDE here]&lt;/font&gt;, но и при сборке ant :-)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;б. саму справку можно поставлять как отдельным jar, так и вместе со всем проектом в одном jar.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;первый вариант: запускаем в каталоге, где у валяются исходники с помощью&lt;br /&gt;&lt;code&gt;&lt;br /&gt;jar -cvf help.jar * &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;второй вариант: добавляем строчки в build.xml (или что-там у вас кормится ant'у)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;property name="build" location="build"/&amp;gt;&lt;br /&gt;&amp;lt;property name="help" location="help_source"/&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;copy todir="${build}/help"&amp;gt;&amp;lt;fileset dir="${help}/"&amp;gt;&amp;lt;include name="**/*"/&amp;gt; &amp;lt;/fileset&amp;gt;&amp;lt;/copy&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;b&gt;**/*&lt;/b&gt; &amp;mdash; указывает на то, что мы копируем все файлы и из подкаталогов тоже.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;3. Чтобы запустить ещё и контекстную справку (f1 на выбранном элементе), нужно указать helpID (id статьи помощи) для этого элемента:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;helpBroker.enableHelpKey(jComponent, "start.help.id", helpSet);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Если у выбранного элемента helpID не указан, то он ищется у окна, содержащего этот компонент. &lt;br /&gt;Помощь советует проставлять default id для фрейма окна, причем выкидывать не сам фрейм, а его yourJFrame.getRootPane()&lt;br /&gt;&lt;br /&gt;4. Для того, чтобы заработал full-text поиск по помощи, кроме подключения расширенной библиотеки jhall.jar, нужно проиндексировать html файлы.&lt;br /&gt;Запустите jhindexer на папки, содержащие html файлы.&lt;br /&gt;Примечание: индексируются все файлы, а не только указанные в вашем map. Так что, не удивляйтесь "лишним" найденным страницам.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S.: Под тегом "&lt;a href="http://users.livejournal.com/_radiant_/tag/Записки+новичга"&gt;Записки новичга&lt;/a&gt;" буду публиковаться какие-то странности и вещи, из-за которых было потеряно время &amp;mdash; чтобы не терять время на следующих проектах.&lt;br /&gt;&lt;br /&gt;Если для кого-то это будет полезная информация &amp;mdash; я рад.&lt;br /&gt;Если укажет, на более удобные (правильные) варианты решения проблем &amp;mdash; буду благодарен.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:52209</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/52209.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=52209"/>
    <title>{book} wanted</title>
    <published>2007-02-19T11:04:38Z</published>
    <updated>2007-02-19T11:04:38Z</updated>
    <content type="html">Разыскивается эл. вариант книжки, английская версия или русский перевод -- неважно.&lt;br /&gt;&lt;a href="http://ww0.java4.datastructures.net/"&gt;Data Structures and Algorithms in Java&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;В онлайн и доступных мне оффлайн магазинах сейчас её нет, гугл не помог.&lt;br /&gt;&lt;br /&gt;Кто-нибудь может поделиться?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:49739</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/49739.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=49739"/>
    <title>{holiday}</title>
    <published>2006-03-08T16:34:08Z</published>
    <updated>2006-03-08T16:34:08Z</updated>
    <content type="html">&lt;blockquote&gt;=&amp;gt; &lt;a href="http://users.livejournal.com/_radiant_life_/35238.html"&gt;кросспост&lt;/a&gt; &lt;font size="-2"&gt;(специально для девушек, которые не читают второй дневник)&lt;/font&gt; :)&lt;/blockquote&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:49482</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/49482.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=49482"/>
    <title>[intel] competition</title>
    <published>2006-03-07T12:44:52Z</published>
    <updated>2006-03-07T12:44:52Z</updated>
    <content type="html">Хм...&lt;br /&gt;&lt;br /&gt;Зимне+летним школьникам Интел (да и не только) может быть интересно:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sotaweek.ru/news/data/20020639.htm"&gt;Компания Intel объявила новый конкурс в области параллельного программирования&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Обратите внимание также на: &amp;laquo; Финалисты конкурса получат приглашение стать студентами летней школы Intel 2006 года &amp;raquo;, ага :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:49176</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/49176.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=49176"/>
    <title>{question, os}</title>
    <published>2006-03-02T14:32:39Z</published>
    <updated>2006-03-02T14:32:39Z</updated>
    <category term="os"/>
    <category term="question"/>
    <content type="html">А можно ли как-нибудь в Windows подмонтировать как диск ресурс, доступный только по ssh?&lt;br /&gt;&lt;br /&gt;Такое в принципе существует? &lt;br /&gt;Если да, то в какую сторону искать?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://utx.ambience.ru/users/_radiant_/os/"&gt;&lt;img title="os" style="background-color: #c00" alt="os" src="http://utx.ambience.ru/img/_radiant_/os/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt; &lt;a href="http://utx.ambience.ru/users/_radiant_/question/"&gt;&lt;img title="question" style="background-color: #c00" alt="question" src="http://utx.ambience.ru/img/_radiant_/question/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt; &lt;a href="http://utx.ambience.ru/users/_radiant_/mount/"&gt;&lt;img title="mount" style="background-color: #c00" alt="mount" src="http://utx.ambience.ru/img/_radiant_/mount/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt; &lt;a href="http://utx.ambience.ru/users/_radiant_/windows/"&gt;&lt;img title="windows" style="background-color: #c00" alt="windows" src="http://utx.ambience.ru/img/_radiant_/windows/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt; &lt;a href="http://utx.ambience.ru/users/_radiant_/ssh/"&gt;&lt;img title="ssh" style="background-color: #c00" alt="ssh" src="http://utx.ambience.ru/img/_radiant_/ssh/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:49143</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/49143.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=49143"/>
    <title>{life, nn}</title>
    <published>2006-02-22T20:04:56Z</published>
    <updated>2006-02-22T20:04:56Z</updated>
    <content type="html">Коротко, о будущем: завтра концерт "Гальярды".&lt;br /&gt;&lt;br /&gt;Для тех, кто был в теме, но не следил за развитиями событий: Витала Слободского там не будет, но тем, кто интересуется музыкой времени барокко прийти стоит.&lt;br /&gt;Для тех, кто не в теме: [&lt;a href="http://www.culturecapital.ru/news/272"&gt;1&lt;/a&gt;], [&lt;a href="http://www.government.nnov.ru/?id=11575"&gt;2&lt;/a&gt;] + &lt;a href="http://www.yandex.ru/yandsearch?text=%C3%E0%EB%FC%FF%F0%E4%E0&amp;amp;stype=www"&gt;остальное из Яндекса&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Концертный зал консерватории, 13&lt;sup&gt;&lt;u&gt;00&lt;/u&gt;&lt;/sup&gt;.&lt;br /&gt;Сколько стоят билеты &amp;mdash; точно не знаю, но по-любому не больше полторы сотни...&lt;br /&gt;&lt;br /&gt;Остальное завтра, во втором дневнике.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:48745</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/48745.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=48745"/>
    <title>[inet, lib]</title>
    <published>2006-02-17T07:32:01Z</published>
    <updated>2006-02-17T07:32:01Z</updated>
    <category term="lib"/>
    <category term="inet"/>
    <category term="english"/>
    <category term="question"/>
    <content type="html">Вопрос: ну и фиг ли выкладывать на lib.aldebaran оглавления англоязычных книг, если самой книги на сайте нет?&lt;br /&gt;Блин.&lt;br /&gt;&lt;br /&gt;Кто откуда берет английскую (художественную) литературу? &lt;br /&gt;Мне интересно классика фантастики на английском (Азимов, Бредбери, etc. Пратчетт, Адамс тоже...)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://utx.ambience.ru/users/_radiant_/lib/"&gt;&lt;img title="lib" style="background-color: #c00" alt="lib" src="http://utx.ambience.ru/img/_radiant_/lib/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;, &lt;a href="http://utx.ambience.ru/users/_radiant_/inet/"&gt;&lt;img title="inet" style="background-color: #c00" alt="inet" src="http://utx.ambience.ru/img/_radiant_/inet/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;, &lt;a href="http://utx.ambience.ru/users/_radiant_/question/"&gt;&lt;img title="question" style="background-color: #c00" alt="question" src="http://utx.ambience.ru/img/_radiant_/question/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;, &lt;a href="http://utx.ambience.ru/users/_radiant_/english/"&gt;&lt;img title="english" style="background-color: #c00" alt="english" src="http://utx.ambience.ru/img/_radiant_/english/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:48635</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/48635.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=48635"/>
    <title>{lj} gmail</title>
    <published>2006-02-13T12:46:00Z</published>
    <updated>2006-02-13T12:46:00Z</updated>
    <content type="html">Ищи хорошее в плохом: убили почтовый аккаунт на старой фирме [не прошло и полгода :Р], жаль, конечно. Перевел комменты на gmail-почту.&lt;br /&gt;а. халявный инет, б. закрытые порты наружу, кроме веба -- в итоге, самый идеальный вариант.&lt;br /&gt;&lt;br /&gt;Скорость ответа приблизилась к IM. Т.е., когда не работаю -- отвечаю моментально :)&lt;br /&gt;Не понимаю, как я раньше без этого жил.&lt;br /&gt;&lt;br /&gt;Из минусов: &lt;br /&gt;1. напрягает то, что не могу разрулить комменты от разных журналов на разные ярлыке. Ненатуралы в ЖЖ не пишут журнал в теме, только в headers и в html-аттаче :(&lt;br /&gt;2. gmail каким-то хитрым образом преобразует сообщения в цепочки. В принципе, 80% попаданий -- это хорошо.&lt;br /&gt;&lt;br /&gt;Теперь бы ещё сделать так, чтобы bookmark'ить отдельные интересные посты в ЖЖ. Чтобы не пересматривать всю ленту.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://utx.ambience.ru/users/_radiant_/lj/"&gt;&lt;img title="lj" style="background-color: #c00" alt="lj" src="http://utx.ambience.ru/img/_radiant_/lj/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt; &lt;a href="http://utx.ambience.ru/users/_radiant_/gmail/"&gt;&lt;img title="gmail" style="background-color: #c00" alt="gmail" src="http://utx.ambience.ru/img/_radiant_/gmail/" height="5" width="30" hspace="3" vspace="3" border="0"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:48146</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/48146.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=48146"/>
    <title>{lj} чудесное</title>
    <published>2006-02-09T15:21:23Z</published>
    <updated>2006-02-09T15:22:27Z</updated>
    <category term="links"/>
    <category term="life"/>
    <category term="lj"/>
    <content type="html">&lt;div style="margin-left: 60px"&gt;&lt;span style="font: bold 120% serif"&gt;&amp;laquo;&lt;/span&gt;&lt;div style="padding: 10px; color: black; background: #f0f0f0; margin-left: 20px; margin-right: 40px;"&gt;&lt;b&gt;Мировоззрение номер четыре.&lt;/b&gt; &lt;br /&gt;Я хороший и мир хороший. Я - человек с чувством собственного достоинства. &lt;br /&gt;Я все могу. Я способен многое сделать и еще большему научиться. Я могу и хочу делать то, что приближает меня к цели. Я могу помочь другим и с удовольствием помогу.&lt;br /&gt;Мир справедлив и дружелюбен и отвечает мне тем, чем я его приветствую.&lt;br /&gt;Жизнь прекрасна и удивительна. Да, случается в жизни всякое. Но это всякое - проходит. Есть что-то, что не меняется. Но и это не страшно.&lt;br /&gt;Люди меня ценят. И я их ценю. Моя личность и личность другого человека достойны уважения и любви (не моей, так хоть чьей-нибудь). &lt;br /&gt;Упал? Встану. Со всяким бывает... &lt;/div&gt;&lt;div style="padding: 10px; margin-left: 20px; margin-right: 40px;"&gt;&amp;copy; &lt;span class='ljuser' lj:user='tigriska' style='white-space: nowrap;'&gt;&lt;a href='http://tigriska.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://tigriska.livejournal.com/'&gt;&lt;b&gt;tigriska&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, &amp;laquo;&lt;a href="http://tigriska.livejournal.com/403037.html"&gt;Про воспитание детей&lt;/a&gt;&amp;raquo;, &lt;a href="http://di1.livejournal.com/84454.html#cutid1"&gt;via&lt;/a&gt; &lt;span class='ljuser' lj:user='di1' style='white-space: nowrap;'&gt;&lt;a href='http://di1.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://di1.livejournal.com/'&gt;&lt;b&gt;di1&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font: bold 120% serif"&gt;&amp;raquo;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Мне нравится такое отношение к миру.&lt;br /&gt;Последние месяца четыре начал переползать из мировоззрения два (в которое сам себя и загнал) в это. &lt;br /&gt;Получается с переменным успехом. Но динамика мне нравится.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:47869</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/47869.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=47869"/>
    <title>{holiday}</title>
    <published>2006-01-25T11:05:44Z</published>
    <updated>2006-01-25T11:05:44Z</updated>
    <content type="html">Чуть не забыл. &lt;br /&gt;&lt;br /&gt;Студентов с профессиональным праздником :)&lt;br /&gt;&lt;br /&gt;Побольше халявы, красных лиц и красных зачёток! :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:46885</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/46885.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=46885"/>
    <title>{life} h?b++</title>
    <published>2006-01-21T07:37:34Z</published>
    <updated>2006-01-21T07:37:34Z</updated>
    <content type="html">&lt;font size="-2"&gt;( Долго хотел повторить &lt;a href="http://antoxa.livejournal.com/94155.html"&gt;такой пост&lt;/a&gt; by &lt;span class='ljuser' lj:user='antoxa' style='white-space: nowrap;'&gt;&lt;a href='http://antoxa.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://antoxa.livejournal.com/'&gt;&lt;b&gt;antoxa&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;. Дотерпел. )&lt;/font&gt; &lt;br /&gt;&lt;br /&gt;&lt;font size="+1"&gt;22&lt;/font&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:46409</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/46409.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=46409"/>
    <title>[m2] важно!</title>
    <published>2006-01-16T10:59:50Z</published>
    <updated>2006-01-16T10:59:50Z</updated>
    <content type="html">Товарищи, граждане и гражданочки, кто имел отношение к м2!&lt;br /&gt;В общем, совместная мысля появилась. &lt;br /&gt;&lt;br /&gt;"Папаша Билли"... Выходной день... Группа активных молодых людей активно всех рвёт :)&lt;br /&gt;&lt;br /&gt;Список желающих, выбор времени составляем совместно у &lt;span class='ljuser' lj:user='sanechka' style='white-space: nowrap;'&gt;&lt;a href='http://sanechka.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://sanechka.livejournal.com/'&gt;&lt;b&gt;sanechka&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;:&lt;br /&gt;&lt;a href="http://www.livejournal.com/users/sanechka/1001840.html"&gt;http://www.livejournal.com/users/sanechka/1001840.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Буду рад снова всех увидеть "вживую" :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:46204</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/46204.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=46204"/>
    <title>[ruby] simple script</title>
    <published>2006-01-14T14:23:25Z</published>
    <updated>2006-01-14T14:24:50Z</updated>
    <content type="html">Не могу отказать себе в возможности лишний раз пнуть &lt;span class='ljuser' lj:user='honeyman' style='white-space: nowrap;'&gt;&lt;a href='http://honeyman.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://honeyman.livejournal.com/'&gt;&lt;b&gt;honeyman&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; по поводу "велосипеда", изобретенного в этом &lt;a href="http://www.livejournal.com/users/honeyman/43835.html"&gt;посте&lt;/a&gt; :)&lt;br /&gt;&lt;br /&gt;На работе возникла задача заменить в конфигах тестов (которые валяются в куче вложенных директорий) слэши в путях зависимых файлов для теста.&lt;br /&gt;Задача простая, к проекту не относится, поэтому решил писать не на perl||python, а на ruby.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
require 'find'
require 'fileutils'
include FileUtils::Verbose

name = 'test\.xml'

def mCheck(f)
    f1 = File.new(f)
    f2 = File.new("#{f}.m", "w")    
    f1.each {|a| 
	f2.puts( (a =~ /&amp;lt;TestFile fileName=/i) ? a.tr('\\', '/') : a )
    }
    f1.close
    f2.close
    mv("#{f}.m", f)    
    puts "#{f}"
end

Find.find(".") do |f|
    mCheck(f) if f=~/#{name}$/ if File.file?(f)
    Find.prune if f =~ /CVS/
end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;"Пинок" заключается в том, что можно было спокойно использовать Find.find(".") do command |f| if f=~/#{name}$/ if File.file?(f)...&lt;br /&gt;&lt;br /&gt;Есть предположение, что функцию mCheck(f) можно было записать на sed||awk в одну строчку, но их я совсем не знаю...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ответные "пинки" приветствуются ;)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:45798</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/45798.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=45798"/>
    <title>[nn] Дамы и господа, как вам это?..</title>
    <published>2006-01-07T13:25:36Z</published>
    <updated>2006-01-09T11:34:55Z</updated>
    <content type="html">&lt;div style="margin-left: 60px"&gt;&lt;span style="font: bold 120% serif"&gt;&amp;laquo;&lt;/span&gt;&lt;div style="padding: 10px; background: #f0f0f0; margin-left: 20px; margin-right: 40px;"&gt;&lt;br /&gt;Поскольку конкуренция на региональном рынке кадров высокая, то средняя заработная плата разработчиков ПО постепенно увеличивается, - это одна из больных тем. &amp;lt;Тэлма&amp;gt; постоянно выступает инициатором встреч и переговоров с коллегами-конкурентами и местными властями по урегулированию этой ситуации, ведь процесс рост зарплат программистов может быть бесконечным. Кроме того, это неадекватно воспринимается молодыми специалистами и вредит их развитию. Я без ложной скромности ставлю в заслугу &amp;lt;Тэлме&amp;gt; заключение внутреннего &amp;lt;джентльменского соглашения&amp;gt; о неприемлемости искусственного завышения цен. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font: bold 120% serif"&gt;&amp;raquo;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Link: &lt;a href="http://www.cnews.ru/reviews/free/itservice/int/telma/"&gt;http://www.cnews.ru/reviews/free/itservice/int/telma/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.livejournal.com/users/alf_kadett/191922.html?style=mine"&gt;via&lt;/a&gt; &lt;span class='ljuser' lj:user='alf_kadett' style='white-space: nowrap;'&gt;&lt;a href='http://alf-kadett.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://alf-kadett.livejournal.com/'&gt;&lt;b&gt;alf_kadett&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Однако! Шиза косит наши ряды...&lt;br /&gt;Сразу вспомнился украинский меморандум it-компаний, о котором упоминал &lt;span class='ljuser' lj:user='max_m' style='white-space: nowrap;'&gt;&lt;a href='http://max-m.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://max-m.livejournal.com/'&gt;&lt;b&gt;max_m&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: See also &lt;br /&gt;&lt;a href="http://www.livejournal.com/users/alexclear/272418.html"&gt;http://www.livejournal.com/users/alexclear/272418.html&lt;/a&gt;&lt;br /&gt;и &lt;a href="http://www.nn.ru/biz/forum/software/?do=read&amp;amp;thread=177602&amp;amp;topic_id=3004991"&gt;Обсуждение на nn.ru&lt;/a&gt; (хех, я оказывается тормоз, обсуждение месячной давности...)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:45459</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/45459.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=45459"/>
    <title>[self-management] gtd</title>
    <published>2006-01-05T17:32:13Z</published>
    <updated>2006-01-05T17:33:37Z</updated>
    <content type="html">Меня забавляет &lt;a href="http://en.wikipedia.org/wiki/GTD"&gt;Getting Things Done&lt;/a&gt;. &lt;font size="-2"&gt;(Ya, ya, я наконец-то дополз до ЖЖшного тренда лета'2005)&lt;/font&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;NB: Некоторых (например, меня) может сильно раздражать введение и первая глава &amp;mdash; я ненавижу рекламный стиль в книгах, "бла-бла-бла, но это действительно работает! Дядя Вася из МММ говорит, что ...". &lt;font size="-2"&gt;(User stories &amp;mdash; отстой)&lt;/font&gt;.&lt;br /&gt;Их можно безболезненно пропустить. Важно прочитать вторую &amp;mdash; там методология (относительно) вкратце рассказывается. В принципе, для "ленивых" есть указанная статья в Википедии.&lt;/blockquote&gt;Основной посыл, что из-за роя мыслей "за деревьями не видно леса", снижается творческая активность &amp;mdash; действительно работает &lt;font size="-2"&gt;(as for me, sure)&lt;/font&gt;.&lt;br /&gt;То, что при выписывание мыслей-дел-... на любой носитель &amp;mdash; этот рой из головы исчезает &amp;mdash; тоже &lt;font size="-2"&gt;(мысль, в принципе, вообще не новая)&lt;/font&gt;.&lt;br /&gt;Повторении пяти этапов позволяет держать "корзинку" &amp;mdash; копилку мыслей &amp;mdash; в рабочем состоянии, и двигаться вперёд...&lt;br /&gt;&lt;br /&gt;Проблема для меня в том, чтобы заставить себя:&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Всё это записывать. &lt;br /&gt;Лень. Дико лень.&lt;br /&gt;Впрочем, это не столь важная проблема, на самом деле. &lt;br /&gt;Выписывание особо волнующих мыслей уже дало офигительный эффект.&lt;br /&gt;&lt;font size="-2"&gt;Т.е., как часто бывает в таких гуманитарных книжках, идёт возведение в подобных каких-то идей в абсолют.&lt;/font&gt; &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Действовать по плану &lt;br /&gt;Безумно трудно. Отвлекаюсь. Что делать &amp;mdash; не понятно.&lt;br /&gt;=&amp;gt; А это для меня важно, бо самоорганизация поставлена целью этого года, надоела собственная расхлябанность.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Перевод пока добрался только до пятой главы, может дальше об этом уже что-то сказано?..&lt;br /&gt;&lt;br /&gt;Кто-нибудь из френдов всё ещё пользуется gtd? Опытом не поделитесь?&lt;br /&gt;&lt;br /&gt;P.S.: &lt;br /&gt;Для тех, кто хочет почитать русский перевод &amp;mdash; welcome to &lt;span class='ljuser' lj:user='gtd_translate' style='white-space: nowrap; font-weight: bold;'&gt;gtd_translate&lt;/span&gt;. Некоммерческий перевод книги Аллена. Правда, под замком.&lt;br /&gt;Пользуясь случаем &amp;trade;, низкий поклон переводчикам. Английский вариант я так осилить и не смог, сломался как раз на первой главе :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:45092</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/45092.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=45092"/>
    <title>[life] С Новым годом!</title>
    <published>2005-12-31T11:57:56Z</published>
    <updated>2005-12-31T15:56:21Z</updated>
    <content type="html">.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update:&lt;/i&gt; Отвечать на все поздравления во френдленте у меня не хватило сил, так что вот так :)&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;Всем чмоки в этом чате&lt;/strike&gt; Ну, вы поняли :)&lt;br /&gt;&lt;br /&gt;Будьте счастливы.&lt;br /&gt;Думаю, хоть что-то хорошее в этом году с вами случилось. Постарайтесь, чтобы в следующем этого что-то было побольше :)&lt;br /&gt;И не "парьтесь" :)&lt;br /&gt;&lt;br /&gt;До встречи в новом году! &lt;font size="-2"&gt;*выпивает, закусывает*&lt;/font&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:44993</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/44993.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=44993"/>
    <title>[link]</title>
    <published>2005-12-27T09:26:12Z</published>
    <updated>2005-12-27T09:26:12Z</updated>
    <category term="smile"/>
    <category term="links"/>
    <category term="lj"/>
    <content type="html">Заметил в комментах сначала в &lt;span class='ljuser' lj:user='overheardmsk' style='white-space: nowrap;'&gt;&lt;a href='http://community.livejournal.com/overheardmsk/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/community.gif' alt='[info]' width='16' height='16' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://community.livejournal.com/overheardmsk/'&gt;&lt;b&gt;overheardmsk&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, потом у &lt;span class='ljuser' lj:user='demiurg' style='white-space: nowrap;'&gt;&lt;a href='http://demiurg.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://demiurg.livejournal.com/'&gt;&lt;b&gt;demiurg&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Судя по &lt;a href="http://blog.yandex.ru"&gt;Blog.Yandex&lt;/a&gt; нехило &lt;a href="http://blog.yandex.ru/search.xml?how=tm&amp;amp;rd=2&amp;amp;text=515642196227308929"&gt;разошлось&lt;/a&gt;. Приму и я в этом участие :)&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://video.google.com/videoplay?docid=515642196227308929"&gt;http://video.google.com/videoplay?docid=515642196227308929&lt;/a&gt; [NB: ~30M]&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Parkour"&gt;Паркур&lt;/a&gt; от соотечественников. Жгут ребята нереально :)&lt;br /&gt;&lt;br /&gt;P.S.: Что за мода у Google выдавать видео через flash... два часа качал через модем [ i'm crazy, i know :)] и сохранить не сумел.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:44559</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/44559.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=44559"/>
    <title>[lit]</title>
    <published>2005-12-26T16:14:21Z</published>
    <updated>2005-12-26T16:14:21Z</updated>
    <category term="lit"/>
    <content type="html">&lt;div style="margin-left: 60px"&gt;&lt;span style="font: bold 120% serif"&gt;&amp;laquo;&lt;/span&gt;&lt;div style="padding: 10px; color: black; background: #f0f0f0; margin-left: 20px; margin-right: 40px;"&gt;— Ты не забывай, — строго говорит Триша, — я же только с виду человек. У кошек все иначе. Когда я говорю, что влюбилась, это значит, я просто счастлива, что такое существо есть на свете. А уж если вдруг оно рядом со мной какое то время будет находиться — вообще сказка, праздник&lt;br /&gt;&lt;/div&gt;&lt;div style="padding: 10px; margin-left: 20px; margin-right: 40px;"&gt;Макс Фрай, "Неуловимый Хабба Хэн"&lt;/div&gt;&lt;span style="font: bold 120% serif"&gt;&amp;raquo;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Очень нравится.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:_radiant_:44393</id>
    <link rel="alternate" type="text/html" href="http://users.livejournal.com/_radiant_/44393.html"/>
    <link rel="self" type="text/xml" href="http://users.livejournal.com/_radiant_/data/atom/?itemid=44393"/>
    <title>[webdev] ruby 1.0</title>
    <published>2005-12-14T22:33:19Z</published>
    <updated>2005-12-14T23:04:28Z</updated>
    <category term="webdev"/>
    <category term="programming"/>
    <category term="ruby"/>
    <category term="rubyonrails"/>
    <category term="links"/>
    <category term="projects"/>
    <category term="lj"/>
    <content type="html">&lt;a href="http://www.livejournal.com/users/moedusa/828114.html"&gt;via&lt;/a&gt; &lt;span class='ljuser' lj:user='moedusa' style='white-space: nowrap;'&gt;&lt;a href='http://moedusa.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://moedusa.livejournal.com/'&gt;&lt;b&gt;moedusa&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;: &lt;a href="http://www.rubyonrails.org/"&gt;RubyOnRails&lt;/a&gt; 1.0 released! [&lt;a href="http://weblog.rubyonrails.org/articles/2005/12/13/rails-1-0-party-like-its-one-oh-oh"&gt;news&lt;/a&gt; @ &lt;a href="http://weblog.rubyonrails.org/"&gt;rubyblog&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;В честь этого решил сделать то, что давно хотел сделать: подборку ссылок на избранные недавние обсуждения RoR, во френдленте, или просто use &lt;a href="http://blog.yandex.ru"&gt;blog.yandex.ru&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Первым "торкнуло" &lt;span class='ljuser' lj:user='moedusa' style='white-space: nowrap;'&gt;&lt;a href='http://moedusa.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://moedusa.livejournal.com/'&gt;&lt;b&gt;moedusa&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;: &amp;laquo;&lt;a href="http://www.livejournal.com/users/moedusa/822358.html"&gt;Я люблю Rails!&lt;/a&gt;&amp;raquo;, &amp;laquo;&lt;a href="http://www.livejournal.com/users/moedusa/821292.html"&gt;Сумма опыта: Я ЛЮБЛЮ RAILS!!!&lt;/a&gt;&amp;raquo;&lt;br /&gt;Обсуждение у &lt;span class='ljuser' lj:user='clops' style='white-space: nowrap;'&gt;&lt;a href='http://clops.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://clops.livejournal.com/'&gt;&lt;b&gt;clops&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;: &amp;laquo;&lt;a href="http://www.livejournal.com/users/clops/493486.html"&gt;.tech | Ruby&lt;/a&gt;&amp;raquo; &amp;mdash; см. также ссылки на IDE и книгу &amp;laquo;Agile Web Development with Rails&amp;raquo; (&lt;font size="-2"&gt;*/me делает вид, что он тут не причём*&lt;/font&gt;)&lt;br /&gt;И у &lt;span class='ljuser' lj:user='demiurg' style='white-space: nowrap;'&gt;&lt;a href='http://demiurg.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://demiurg.livejournal.com/'&gt;&lt;b&gt;demiurg&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;: &amp;laquo;&lt;a href="http://www.livejournal.com/users/demiurg/68878.html"&gt;RoR&lt;/a&gt;&amp;raquo;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Что уже не из френдленты:&lt;/b&gt; &lt;br /&gt;&lt;span class='ljuser' lj:user='preprocessor' style='white-space: nowrap; font-weight: bold;'&gt;preprocessor&lt;/span&gt;: &amp;laquo;&lt;a href="http://www.livejournal.com/users/preprocessor/38326.html"&gt;Ещё пара слов о Ruby&lt;/a&gt;&amp;raquo; &amp;mdash; советую посмотреть ссылки из комментов&lt;br /&gt;Флейм у &lt;span class='ljuser' lj:user='avva' style='white-space: nowrap;'&gt;&lt;a href='http://avva.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://avva.livejournal.com/'&gt;&lt;b&gt;avva&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;: &amp;laquo;&lt;a href="http://www.livejournal.com/users/avva/1475707.html"&gt;хочу всё знать&lt;/a&gt;&amp;raquo; (несмотря на это, много интересных комментов)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;До кучи:&lt;/b&gt; &lt;br /&gt;&lt;a href="http://sabanin.ru"&gt;http://sabanin.ru&lt;/a&gt; &amp;mdash; хороший блог, посвящённый &lt;i&gt;ror&lt;/i&gt;-программированию &lt;br /&gt;&amp;laquo;&lt;a href="http://live.julik.nl/webdev"&gt;Веб-стройка&lt;/a&gt;&amp;raquo; @ &amp;laquo;&lt;a href="http://live.julik.nl"&gt;julik live&lt;/a&gt;&amp;raquo; &amp;mdash; хороший блог&lt;br /&gt;&lt;br /&gt;RoR:Wiki &lt;a href="http://wiki.rubyonrails.org/rails/pages/RailsOnWindows"&gt;RailsOnWindows&lt;/a&gt; &amp;mdash;  как прикрутить &lt;i&gt;ror&lt;/i&gt; на виндовой тачке &lt;br /&gt;&lt;font size="-2"&gt;(Сам не пробовал. Есть сведения, что работает. &lt;br /&gt; Выделил отдельной ссылкой, бо у меня автоматом не ставилось. Было обидно. )&lt;/font&gt; &lt;br /&gt;&lt;br /&gt;&amp;laquo;&lt;a href="http://softwaremaniacs.org/blog/2005/12/08/django/"&gt;Django&lt;/a&gt;&amp;raquo; @ &amp;laquo;&lt;a href="http://softwaremaniacs.org/blog"&gt;Маниакальный Веблог&lt;/a&gt;&amp;raquo;&lt;br /&gt;&lt;span class='ljuser' lj:user='sobaker' style='white-space: nowrap;'&gt;&lt;a href='http://sobaker.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://sobaker.livejournal.com/'&gt;&lt;b&gt;sobaker&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, &amp;laquo;&lt;a href="http://www.livejournal.com/users/sobaker/300920.html"&gt;Что, если?..&lt;/a&gt;&amp;raquo;  &amp;mdash; перевод интересной статьи, правда, она больше о Смоллтолке :)</content>
  </entry>
</feed>
