<?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-7187023755917385731</id><updated>2011-11-30T21:58:31.366+02:00</updated><category term='end'/><category term='mobile'/><category term='pm downloader'/><category term='OS/2'/><category term='p2p'/><category term='WTK'/><category term='java'/><category term='ejb'/><category term='wireless'/><category term='/dev/dsp'/><category term='ejb3'/><category term='books'/><category term='jboss'/><category term='PlayME'/><category term='maverick'/><category term='evdo'/><category term='SIM'/><category term='lucide'/><category term='ubuntu'/><category term='links'/><category term='screenshots'/><category term='site'/><title type='text'>Eugene's dev blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.eros2.info/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>eros2</name><uri>http://www.blogger.com/profile/08647648339633508047</uri><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>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-798287933913421976</id><published>2011-11-07T18:23:00.006+02:00</published><updated>2011-11-07T19:06:53.889+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb3'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>JBoss: Injecting remote EJB from one container to another</title><content type='html'>These methods tested on JBoss AS 6.1.0.&lt;br /&gt;&lt;br /&gt;Assume we have two EJBs with full qualified classnames "com.foo.ejb1.Bean1" and "com.foo.ejb2.Bean2". Second EJB deployed on remote JBoss and have remote interface "com.foo.ejb2.Bean2Remote".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method one&lt;/span&gt;, using only EJB annotation:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre class="java5" style="font-family:monospace;"&gt;@Stateless&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; Bean1 &lt;span style="color: #000000; font-weight: bold;"&gt;implements&lt;/span&gt; ...&lt;br /&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;    @EJB&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;lookup=&lt;span style="color: #0000ff;"&gt;&amp;quot;jnp://hostname/Bean2/remote&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; Bean2Remote b2&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    ...&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;We use &lt;a href="http://download.oracle.com/javaee/6/api/javax/ejb/EJB.html#lookup%28%29"&gt;"EJB" annotation with "lookup" element&lt;/a&gt;. For JBoss 6, it contains JNP URL to remote EJB, where "hostname" is the host name or IP address of remote JBoss server, and "Bean2" is the name of remote EJB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method two&lt;/span&gt;, using EJB annotation and ejb-jar configuration:&lt;br /&gt;&lt;code&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre class="java5" style="font-family:monospace;"&gt;@Stateless&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; Bean1 &lt;span style="color: #000000; font-weight: bold;"&gt;implements&lt;/span&gt; ...&lt;br /&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;    @EJB&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;name=&lt;span style="color: #0000ff;"&gt;&amp;quot;bean2ref&amp;quot;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; Bean2Remote b2&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    ...&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;ejb-jar.xml:&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre class="xml" style="font-family:monospace;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-jar&lt;/span&gt; xmlns = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         version = &lt;span style="color: #ff0000;"&gt;&amp;quot;3.1&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         xmlns:xsi = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         xsi:schemaLocation = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;   &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;enterprise-beans&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;session&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bean1&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;          &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;bean2ref&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref-type&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Session&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref-type&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;lookup-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;jnp://hostname/Bean2/remote&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/lookup-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/session&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/enterprise-beans&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-jar&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Now JNP URL moved from sourcecode to XML.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method three&lt;/span&gt;, using only ejb-jar configuration:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre class="java5" style="font-family:monospace;"&gt;@Stateless&lt;br /&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: #000000; font-weight: bold;"&gt;class&lt;/span&gt; Bean1 &lt;span style="color: #000000; font-weight: bold;"&gt;implements&lt;/span&gt; ...&lt;br /&gt;&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #000000; font-weight: bold;"&gt;private&lt;/span&gt; Bean2Remote b2&lt;span style="color: #339933;"&gt;;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;    ...&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;ejb-jar.xml:&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre class="xml" style="font-family:monospace;"&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color: #000066;"&gt;version&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #000066;"&gt;encoding&lt;/span&gt;=&lt;span style="color: #ff0000;"&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-jar&lt;/span&gt; xmlns = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         version = &lt;span style="color: #ff0000;"&gt;&amp;quot;3.1&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         xmlns:xsi = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;         xsi:schemaLocation = &lt;span style="color: #ff0000;"&gt;&amp;quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;  &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;enterprise-beans&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;session&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;          &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Bean1&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;bean2ref&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;ejb-ref-type&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Session&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref-type&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;remote&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.foo.ejb2.Bean2Remote&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/remote&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;injection-target&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;injection-target-class&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.foo.ejb1.Bean1&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/injection-target-class&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;injection-target-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;b2&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/injection-target-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;                  &lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/injection-target&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;lookup-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;jnp://hostname/Bean2/remote&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/lookup-name&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-ref&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/session&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/enterprise-beans&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #009900;"&gt;&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;lt;/ejb-jar&lt;span style="color: #000000; font-weight: bold;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-798287933913421976?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/798287933913421976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=798287933913421976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/798287933913421976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/798287933913421976'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2011/11/jboss-injecting-remote-ejb-from-one.html' title='JBoss: Injecting remote EJB from one container to another'/><author><name>eros2</name><uri>http://www.blogger.com/profile/08647648339633508047</uri><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-7187023755917385731.post-7074089659909701532</id><published>2011-03-06T20:17:00.001+02:00</published><updated>2011-03-06T20:19:49.400+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='PlayME'/><title type='text'>PlayME! v1.1</title><content type='html'>PlayME! updated, lowered requirements from CLDC-1.1 to CLDC-1.0, so now supported wider range of devices.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;a href="http://www.eros2.info/playme.shtml"&gt;PlayME! - mp3 проигрыватель для мобильных телефонов с поддержкой Java&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eros2.info/playme_en.shtml"&gt;PlayME! - mp3 player for Java-enabled mobile phones&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-7074089659909701532?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/7074089659909701532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=7074089659909701532' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/7074089659909701532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/7074089659909701532'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2011/03/playme-v11.html' title='PlayME! v1.1'/><author><name>eros2</name><uri>http://www.blogger.com/profile/08647648339633508047</uri><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-1741598448819468092</id><published>2011-02-27T17:07:00.002+02:00</published><updated>2011-02-27T17:13:16.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><title type='text'>PlayME! v1.0</title><content type='html'>PlayME! v1.0 released - &lt;a href="http://www.eros2.info/playme_en.shtml"&gt;http://www.eros2.info/playme_en.shtml&lt;/a&gt;&lt;br /&gt;PlayME! is a freeware mp3 player for Java-enabled mobile phones. Plays mp3 files in selected folders/subfolders recursively in alphabetical or random order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-1741598448819468092?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/1741598448819468092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=1741598448819468092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1741598448819468092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1741598448819468092'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2011/02/playme-v10.html' title='PlayME! v1.0'/><author><name>eros2</name><uri>http://www.blogger.com/profile/08647648339633508047</uri><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-7187023755917385731.post-6200131354801993840</id><published>2011-02-14T18:14:00.004+02:00</published><updated>2011-02-14T18:38:05.913+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WTK'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='maverick'/><category scheme='http://www.blogger.com/atom/ns#' term='/dev/dsp'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 10.10 и /dev/dsp</title><content type='html'>В Ubuntu 10.10 Maverick Meerkat отсутствует устройство /dev/dsp, соответсвенно, есть проблемы с некоторыми программами, которые выводят звук через &lt;acronym title="Open Sound System"&gt;OSS&lt;/acronym&gt;. Например, нет звука в мобильном эмуляторе из Sun Java Wireless Toolkit.&lt;br /&gt;Чтобы съэмулировать /dev/dsp, необходимо установить пакет &lt;b&gt;alsa-oss&lt;/b&gt; и после этого запускать процессы, нуждающеися в /dev/dsp командой &lt;b&gt;aoss&lt;/b&gt;, передавая параметром имя нужной программы.&lt;br /&gt;&lt;br /&gt;Для работы мобильного эмулятора следует отредактировать файл &amp;lt;путь к WTK&amp;gt;/bin/emulator, и в строку &lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;"${javapathtowtk}java" -Dkvem.home="${KVEM_HOME}" \&lt;/pre&gt;&lt;/div&gt;добавить в начало "aoss":&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;aoss "${javapathtowtk}java" -Dkvem.home="${KVEM_HOME}" \&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-6200131354801993840?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/6200131354801993840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=6200131354801993840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6200131354801993840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6200131354801993840'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2011/02/ubuntu-1010-devdsp.html' title='Ubuntu 10.10 и /dev/dsp'/><author><name>eros2</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-7187023755917385731.post-427350744595620186</id><published>2010-12-22T11:24:00.013+02:00</published><updated>2011-02-24T20:36:11.980+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='evdo'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='maverick'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Использование EVDO-модема BLESS UC165 в Ubuntu</title><content type='html'>Версия Ubuntu - 10.10 Maverick Meerkat.&lt;br /&gt;&lt;br /&gt;При подключении &lt;a href="http://www.bless.net.ua/photo/modems/cdma_modem_bless_uc_165/2-0-5"&gt;устройство&lt;/a&gt; определяется как USB Mass Storage Device (вывод lsusb):&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;Bus 007 Device 002: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;code&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;Соответственно, при попытке создать новое мобильное соединение, никакого устройства не доступно:&lt;br /&gt;&lt;br /&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer;" src="http://img145.imageshack.us/img145/2040/ubuntumodem1.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Чтобы оно заработало нужно: a) перевести его в режим wireless-модема b) загрузить usbserial.&lt;br /&gt;&lt;br /&gt;Для изменения режима работы устройства используется &lt;a href="http://www.draisberghof.de/usb_modeswitch/"&gt;usb_modeswitch&lt;/a&gt;, выполняем следующую команду:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;sudo usb_modeswitch -v 05c6 -p 1000 -V 1d09 -P 4306 -m 0x00000008 -M 5553424328932a86000000000000061b000000020000000000000000000000&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Магические значения параметров -m и -M &lt;a href="http://forum.ubuntu.ru/index.php?topic=64765.0"&gt;найдены на форуме&lt;/a&gt; Ubuntu.&lt;br /&gt;&lt;br /&gt;Теперь lsusb покажет что устройство изменилось:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;Bus 007 Device 003: ID 1d09:4306 TechFaith Wireless Technology Limited&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Далее, нужно загрузить usbserial, указав устройство:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;sudo modprobe usbserial vendor=0x1d09 product=0x4306&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;После этого, про создании нового мобильного соединения, появится доступное устройство:&lt;br /&gt;&lt;br /&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; " src="http://img607.imageshack.us/img607/637/ubuntumodem2.png" alt="" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;А теперь настроим систему так, чтобы не нужно было запускать usb_modeswitch и usbserial вручную.&lt;br /&gt;&lt;br /&gt;usb_modeswitch: в каталоге &lt;b&gt;/etc/usb_modeswitch.d&lt;/b&gt; создаём файл с именем "&lt;b&gt;05c6:1000:uMa=Qualcomm&lt;/b&gt;". Имя файла состоит из идентификаторов вендора и продукта, а дальше указывается какая строка должна присутствовать в описании устройства, в нашем случае это "Qualcomm". Теперь usb_modeswitch будет автоматически реагировать на устройство с указанными ИД-ами и словом "Qualcomm" в описании.&lt;br /&gt;&lt;br /&gt;Содержимое файла такое:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;# Configuration for the usb_modeswitch package, a mode switching tool for&lt;br /&gt;# USB devices providing multiple states or modes&lt;br /&gt;#&lt;br /&gt;# This file is evaluated by the wrapper script "usb_modeswitch_dispatcher"&lt;br /&gt;# in /usr/sbin&lt;br /&gt;# To enable an option, set it to "1", "yes" or "true" (case doesn't matter)&lt;br /&gt;# Everything else counts as "disable"&lt;br /&gt;&lt;br /&gt;DefaultVendor=  0x05c6&lt;br /&gt;DefaultProduct= 0x1000&lt;br /&gt;&lt;br /&gt;TargetVendor=    0x1d09&lt;br /&gt;TargetProdct=    0x4306&lt;br /&gt;&lt;br /&gt;MessageEndpoint=    0x00000008&lt;br /&gt;&lt;br /&gt;MessageContent=    "5553424328932a86000000000000061b000000020000000000000000000000"&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Теперь режим нашего устройства будет переключаться автоматически.&lt;br /&gt;&lt;br /&gt;Далее, необходимо выполнять команду для загрузки модуля usbserial. На многих форумах рекомендуется использовать /etc/modules.conf (modprobe.conf), однако этот вариант у меня не заработал.&lt;br /&gt;Я прописал нужную команду в &lt;b&gt;/etc/rc.local&lt;/b&gt; (прописывать нужно перед последней строкой, последняя строка должна содержать команду "exit 0"):&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;#!/bin/sh -e&lt;br /&gt;#&lt;br /&gt;# rc.local&lt;br /&gt;#&lt;br /&gt;# This script is executed at the end of each multiuser runlevel.&lt;br /&gt;# Make sure that the script will "exit 0" on success or any other&lt;br /&gt;# value on error.&lt;br /&gt;#&lt;br /&gt;# In order to enable or disable this script just change the execution&lt;br /&gt;# bits.&lt;br /&gt;#&lt;br /&gt;# By default this script does nothing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;modprobe usbserial vendor=0x1d09 product=0x4306&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Для применения изменений следует перезагрузить систему. Теперь модем будет обнаруживаться автоматически.&lt;br /&gt;&lt;br /&gt;На формуах много тем с обсуждением подобных устройств, однако там либо вообще не описано как заставить usb_modeswitch и usbserial отрабатывать автоматически, либо описанные способы не работают, так что тут я описал способ, который работает для меня на Ubuntu 10.10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-427350744595620186?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/427350744595620186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=427350744595620186' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/427350744595620186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/427350744595620186'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2010/12/evdo-bless-uc165-ubuntu.html' title='Использование EVDO-модема BLESS UC165 в Ubuntu'/><author><name>eros2</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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-8566041545427301330</id><published>2009-04-26T11:35:00.015+03:00</published><updated>2009-12-01T21:50:52.005+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb'/><category scheme='http://www.blogger.com/atom/ns#' term='ejb3'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Создание простейшего EJB 3 и клиентского приложения</title><content type='html'>Эта статься посвящена созданию простейшего &lt;a href="http://java.sun.com/javaee/5/docs/tutorial/doc/bnbls.html"&gt;EJB&lt;/a&gt;-модуля, его инсталляции в сервер приложений &lt;a href="http://www.jboss.org/jbossas/"&gt;JBoss&lt;/a&gt; и удалённому вызову метода из клиентской программы.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 204, 204);"&gt;Для понимания необходимо:&lt;/span&gt; базовое знание языка Java (наследование, интерфейсы)&lt;br /&gt;&lt;br /&gt;Простейший EJB, пригодный для удалённого вызова, состоит из двух .java файлов:&lt;br /&gt;&lt;code&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;1. Интерфейс, в котором описаны методы, предоставляемые бином, файл TestRemote.java:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; javax&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;ejb&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Remote&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Аннотация "@Remote" означает, что это интерфейс, описывающий&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// методы доступные для вызова удалёнными клиентами&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;@Remote&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;interface&lt;/b&gt;&lt;/span&gt; TestRemote&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Назовём наш метод просто getTime()&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Он вернёт строку с серверным временем&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;String getTime&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;2. Собственно реализация, файл TestBean.java:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; javax&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;ejb&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Stateless&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Аннотация "@Stateless" указывает, что это будет&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// бин без сохранения состояния между вызовами методов&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;@Stateless&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; TestBean &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;implements&lt;/b&gt;&lt;/span&gt; TestRemote&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// реализация метода, указанного в интерфейсе&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; String getTime&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;java&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;util&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Date d &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; java&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;util&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Date&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color:PURPLE;"&gt;"Server time: "&lt;/span&gt; &lt;span style=";font-size:78%;color:BLUE;"  &gt;+&lt;/span&gt; d&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Компилируется командой:&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;javac -classpath .:&lt;путь к папке JBoss&gt;/common/lib/jboss-javaee.jar TestBean.java&lt;/pre&gt;&lt;/div&gt;Обратите внимание на двоеточие в опции -classpath, в среде Windows следует использовать ";".&lt;br /&gt;&lt;br /&gt;После успешной компиляции мы получим два .class-файла. Теперь нужно собрать их в один .jar, это делается командой&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;jar -cf test.jar *.class&lt;/pre&gt;&lt;/div&gt;Тут мы получаем файл test.jar. Копируем его в каталог server/default/deploy в папке JBoss.&lt;br /&gt;Если JBoss запущен, то обнаружив новый или обновлённый .jar в папке deploy - он подхватит и задеплоит его, о чём сообщит:&lt;br /&gt;&lt;img src="http://s57.radikal.ru/i158/0904/43/f78e82b5dd6d.png" border="0" height="77" vspace="4" width="732" /&gt;&lt;br /&gt;&lt;br /&gt;Теперь наш бин загружен в сервер приложений и доступен для вызова извне. Напишем простую программу для вызова метода - client.java:&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; java&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;util&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Properties&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; javax&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;naming&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;Context&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; javax&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;naming&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;InitialContext&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; client&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; main&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt; String&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;[&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;]&lt;/b&gt;&lt;/span&gt; arg &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; Exception&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Указываем параметры для связи с сервером приложений:&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    &lt;span style="color:GREEN;"&gt;&lt;i&gt;// классы для создания контекста и адрес сервера&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    Properties p &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; Properties&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;  p&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;put&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt; Context&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;INITIAL_CONTEXT_FACTORY&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:PURPLE;"&gt;"org.jnp.interfaces.NamingContextFactory"&lt;/span&gt; &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;p&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;put&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt; Context&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;PROVIDER_URL&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;,&lt;/b&gt;&lt;/span&gt; &lt;span style="color:PURPLE;"&gt;"localhost"&lt;/span&gt; &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="color:GREEN;"&gt;&lt;i&gt; // Создаём начальный контекст, в котором будет&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    &lt;span style="color:GREEN;"&gt;&lt;i&gt;// производиться поиск объетов&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    Context ctx &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; InitialContext&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;p&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;  &lt;/i&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// Ищем бин по имени, которое сообщил нам JBoss&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    Object ref &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; ctx&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;lookup&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt; &lt;span style="color:PURPLE;"&gt;"TestBean/remote"&lt;/span&gt; &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;  // Приводим ссылку на объект к интерфейсу бина&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    TestRemote bean &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;TestRemote&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;ref&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;  &lt;/i&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:GREEN;"&gt;&lt;i&gt;// И вызывем метод&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;    String serverTime &lt;span style=";font-size:78%;color:BLUE;"  &gt;=&lt;/span&gt; bean&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;getTime&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;System&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;out&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;println&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt; serverTime &lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;b&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;b&gt;  &lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-size:78%;color:BLUE;"  &gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Компилируется командой:&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;javac client.java&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;И запускаем:&lt;br /&gt;&lt;div style="border: 1px solid rgb(168, 168, 168);"&gt;&lt;pre&gt;java -classpath .:&lt;путь к папке JBoss&gt;/client/jbossall-client.jar client&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Если программа не выбросила никаких иксепшенов, а вывела на консоль строку вида &lt;span style="font-weight: bold;"&gt;"Server time: Sun Apr 26 16:38:04 EEST 2009" &lt;/span&gt;- значит всё работает!&lt;br /&gt;&lt;br /&gt;При реальном использовании у клиента должен быть доступ только к .class-файлу TestRemote. TestBean должен находиться только на сервере приложений.&lt;br /&gt;&lt;br /&gt;В дальнейшем я планирую осветить некоторые неочевидные вопросы контроля доступа, авторизации с использованием БД и пр.&lt;br /&gt;&lt;b&gt;UPD:&lt;/b&gt; однако, поскольку мне жутко лень писать новые статейки - уж не знаю, будет ли продолжение...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-8566041545427301330?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/8566041545427301330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=8566041545427301330' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8566041545427301330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8566041545427301330'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2009/04/ejb-3.html' title='Создание простейшего EJB 3 и клиентского приложения'/><author><name>eros2</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-7187023755917385731.post-5390380857584234436</id><published>2009-04-12T16:58:00.001+03:00</published><updated>2009-04-25T12:13:26.948+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='end'/><title type='text'>end of the road</title><content type='html'>Решил уйти с OS/2. Скорее всего на линукс.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-5390380857584234436?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/5390380857584234436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=5390380857584234436' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5390380857584234436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5390380857584234436'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2009/04/os2.html' title='end of the road'/><author><name>eros2</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-2484876557630821790</id><published>2009-01-25T17:18:00.003+02:00</published><updated>2009-04-25T12:13:08.385+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='SIM'/><title type='text'>SIM/2 и проблемы с аськой</title><content type='html'>Подробное описание проблемы &lt;a href="http://habrahabr.ru/blogs/im/49778/"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;На данный момент работает например &lt;a href="https://mailman.dg.net.ua/pipermail/sim-im-russian/2009-January/000270.html"&gt;такое решение&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2484876557630821790?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2484876557630821790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2484876557630821790' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2484876557630821790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2484876557630821790'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2009/01/sim2.html' title='SIM/2 и проблемы с аськой'/><author><name>eros2</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-7187023755917385731.post-1137882901363780440</id><published>2008-08-24T14:27:00.003+03:00</published><updated>2009-04-25T12:13:08.385+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='SIM'/><title type='text'>Updated Yahoo plugin for SIM/2</title><content type='html'>I updated it months ago, but not posted to public, sorry.&lt;br /&gt;&lt;br /&gt;Download - &lt;a href="http://www.eros2.info/download/yahoo_20080419.zip"&gt;yahoo_20080419.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It includes a fix for April's protocol change in Yahoo! Messenger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-1137882901363780440?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/1137882901363780440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=1137882901363780440' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1137882901363780440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1137882901363780440'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2008/08/updated-yahoo-plugin-for-sim2.html' title='Updated Yahoo plugin for SIM/2'/><author><name>eros2</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-7187023755917385731.post-2370585857767252425</id><published>2007-12-17T13:41:00.000+02:00</published><updated>2009-04-25T12:11:40.365+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><title type='text'>OS/2: Extended Attributes</title><content type='html'>Написал в ЖЖ &lt;a href="http://eros2.livejournal.com/136119.html"&gt;статейку о пользе расширенных атрибутов в OS/2&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2370585857767252425?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2370585857767252425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2370585857767252425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2370585857767252425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2370585857767252425'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/12/os2-extended-attributes.html' title='OS/2: Extended Attributes'/><author><name>eros2</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-7187023755917385731.post-5408542164182061102</id><published>2007-12-05T20:28:00.000+02:00</published><updated>2009-04-25T12:13:08.385+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='SIM'/><title type='text'>SIM-IM for OS/2 Update</title><content type='html'>I made some updates to OS/2 version of &lt;a href="http://sim-im.org"&gt;SIM Instant Messenger&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download:&lt;/b&gt; &lt;a href="http://www.eros2.info/download/sim-im-os2-0.9.4.3-r2.zip"&gt;sim-im-os2-0.9.4.3-r2.zip&lt;/a&gt; (7.2 MB)&lt;br /&gt;&lt;br /&gt;Changes since &lt;a href="http://eros2-dev.blogspot.com/2007/03/sim-for-os2.html"&gt;previous release&lt;/a&gt;:&lt;br /&gt;&lt;small&gt;&lt;ul&gt;&lt;li&gt;Updated Qt library which includes DBCS support and styles support.&lt;/li&gt;&lt;li&gt;Ported and included AutoAway plugin.&lt;/li&gt;&lt;/ul&gt;&lt;/small&gt;&lt;br /&gt;Notes:&lt;br /&gt;&lt;small&gt;&lt;ul&gt;&lt;li&gt;Styles plugin provides style switching now. But Warp 4 style doesn't work, &lt;b&gt;SIM will crash on it&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;SYSGLIT.DLL provides WinGetLastInputTime() function for AutoAway plugin. You may copy this dll into \OS2\DLL directory.&lt;/li&gt;&lt;li&gt;This release requires GCC 0.6.3 runtime library: &lt;a href="ftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.exe"&gt;libc-0_6_3-csd3.exe&lt;/a&gt; or &lt;a href="ftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.wpi"&gt;libc-0_6_3-csd3.wpi&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/small&gt;&lt;br /&gt;See SIM under OS/2 screenshots in &lt;a href="http://eros2-dev.blogspot.com/2007/03/sim-for-os2.html"&gt;previous announce&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-5408542164182061102?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/5408542164182061102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=5408542164182061102' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5408542164182061102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5408542164182061102'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/12/sim-im-for-os2-update.html' title='SIM-IM for OS/2 Update'/><author><name>eros2</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>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-8339613812862419165</id><published>2007-09-12T20:57:00.000+03:00</published><updated>2009-04-25T12:16:27.383+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='site'/><title type='text'>My new site</title><content type='html'>My site moved to &lt;a href="http://www.eros2.info"&gt;http://www.eros2.info&lt;/a&gt;.&lt;br /&gt;http://eros2.by.ru is not maintained anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-8339613812862419165?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/8339613812862419165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=8339613812862419165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8339613812862419165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8339613812862419165'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/09/my-new-site.html' title='My new site'/><author><name>eros2</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-7187023755917385731.post-5189996485688286028</id><published>2007-09-11T08:28:00.000+03:00</published><updated>2009-04-25T12:14:36.368+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='lucide'/><title type='text'>Lucide 1.20</title><content type='html'>&lt;b&gt;Lucide&lt;/b&gt; version 1.20 released. Lucide is a plugin based document viewer for OS/2 and eComStation. Currently it supports PDF, DjVu and JPEG files.&lt;br /&gt;Binaries available at &lt;a href="http://www.ecomstation.com"&gt;eCS&lt;/a&gt; betazone.&lt;br /&gt;&lt;br /&gt;List of changes since &lt;a href="http://eros2-dev.blogspot.com/2007/08/lucide-101.html"&gt;version 1.01&lt;/a&gt;:&lt;br /&gt;&lt;small&gt;&lt;ul&gt;&lt;li&gt;JPG plugin: added support for quality image scaling&lt;/li&gt;&lt;li&gt;If the filename does not have an extension or the extension is unknown, Lucide will check file data to determine a suitable plugin (closed ticket #43)&lt;/li&gt;&lt;li&gt;Added menuitems and hotkeys to subsequently load supported files in same directory (Menu: Document-&gt;Next/Previous, closed ticket #66)&lt;/li&gt;&lt;li&gt;Added list of recent files (Menu: Document-&gt;Recent files)&lt;/li&gt;&lt;li&gt;Implemented custom file dialog with preview (closed ticket #86)&lt;/li&gt;&lt;li&gt;Added hotkeys (Ctrl+0/1/2) for predefined zoom levels&lt;/li&gt;&lt;li&gt;Added 'Ignore printer margins' option in Print dialog (closed ticket #110)&lt;/li&gt;&lt;li&gt;UClip package is optional now (closed ticket #115)&lt;/li&gt;&lt;li&gt;Small fixes and improvements (closed ticket #126)&lt;/li&gt;&lt;/ul&gt;&lt;/small&gt;&lt;br /&gt;Screenshots &lt;a href="http://eros2-dev.blogspot.com/2007/08/lucide-101.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On &lt;a href="http://svn.netlabs.org/lucide/"&gt;Lucide page at Netlabs&lt;/a&gt; you may post bugreports/read tickets and find toolkit for creating your own Lucide plugins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-5189996485688286028?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/5189996485688286028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=5189996485688286028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5189996485688286028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/5189996485688286028'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/09/lucide-120.html' title='Lucide 1.20'/><author><name>eros2</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-7187023755917385731.post-6199637000869480376</id><published>2007-08-26T11:45:00.000+03:00</published><updated>2009-04-25T12:15:49.538+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshots'/><title type='text'>Screenshots</title><content type='html'>Сегодняшние скриншоты OS/2 (или eCS) с #os2russian:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;Мой:&lt;br /&gt;&lt;a href="http://i11.tinypic.com/6bohwyu.png"&gt;&lt;img src="http://i11.tinypic.com/6bohwyu_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;[Pasha]:&lt;br /&gt;&lt;a href="http://i17.tinypic.com/6czij4h.png"&gt;&lt;img src="http://i17.tinypic.com/6czij4h_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;froloff:&lt;br /&gt;&lt;a href="http://img207.imageshack.us/img207/3712/capturedmq7.jpg"&gt;&lt;img src="http://img207.imageshack.us/img207/3712/capturedmq7.th.jpg" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;[TeL_GiS]:&lt;br /&gt;&lt;a href="http://www.4shared.com/file/22870235/82f0b97e/desktop.html"&gt;&lt;img src="http://i9.tinypic.com/6c7743k_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;valerius:&lt;br /&gt;&lt;a href="http://img180.imageshack.us/img180/6756/valeriusshotve5.jpg"&gt;&lt;img src="http://img180.imageshack.us/img180/6756/valeriusshotve5.th.jpg" vpace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;sy-uname:&lt;br /&gt;&lt;a href="http://i12.tinypic.com/4mj5fh5.png"&gt;&lt;img src="http://i12.tinypic.com/4mj5fh5_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;Sergey:&lt;br /&gt;&lt;a href="http://i19.tinypic.com/63csowo.png"&gt;&lt;img src="http://i19.tinypic.com/63csowo_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Kolo:&lt;br /&gt;&lt;a href="http://img213.imageshack.us/img213/5325/koloscroi0.jpg"&gt;&lt;img src="http://img213.imageshack.us/img213/5325/koloscroi0.th.jpg" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;fighter4:&lt;br /&gt;&lt;a href="http://i19.tinypic.com/62e0s42.png"&gt;&lt;img src="http://i19.tinypic.com/62e0s42_th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;lord_yama:&lt;br /&gt;&lt;a href="http://i15.tinypic.com/54b6ixf.jpg"&gt;&lt;img src="http://i15.tinypic.com/54b6ixf_th.jpg" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;Oxyd:&lt;br /&gt;&lt;a href="http://img409.imageshack.us/img409/8625/captured4yp2.png"&gt;&lt;img src="http://img409.imageshack.us/img409/8625/captured4yp2.th.png" vspace="3" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Guest star: &lt;b&gt;zuko&lt;/b&gt;! Warp 3 system desktop (кусок вырезан цензурой):&lt;br /&gt;&lt;a href="http://i17.tinypic.com/541xb91.gif"&gt;&lt;img src="http://i17.tinypic.com/541xb91_th.gif" vspace="3" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-6199637000869480376?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/6199637000869480376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=6199637000869480376' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6199637000869480376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6199637000869480376'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/08/screenshots.html' title='Screenshots'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i11.tinypic.com/6bohwyu_th.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-2632584302802094536</id><published>2007-08-07T21:13:00.000+03:00</published><updated>2009-04-25T12:15:29.493+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'></title><content type='html'>Полезная книга (на русском языке) для желающих изучить программирование под Presentation Manager, буде таковые сыщутся &amp;mdash; &amp;laquo;&lt;a href="http://www.lib.csu.ru/DL/bases/prg/frolov/books/bsp/v25/index.html"&gt;Программирование для IBM OS/2&lt;/a&gt;&amp;raquo;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2632584302802094536?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2632584302802094536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2632584302802094536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2632584302802094536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2632584302802094536'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/08/presentation-manager-ibm-os2.html' title=''/><author><name>eros2</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-7187023755917385731.post-2045587657272768495</id><published>2007-08-01T18:08:00.000+03:00</published><updated>2009-04-25T12:14:36.368+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='lucide'/><title type='text'>Lucide 1.01</title><content type='html'>I made some updates to &lt;b&gt;Lucide&lt;/b&gt; document viewer and Mensys released it.&lt;br /&gt;Binaries available at eCS betazone.&lt;br /&gt;&lt;br /&gt;Here is a list of changes since version 1.0:&lt;br /&gt;&lt;small&gt;&lt;ul&gt;&lt;li&gt;DJVU plugin: plugin may eat great amount of memory, fixed.&lt;/li&gt;&lt;li&gt;DJVU plugin: djvulibre updated to version 3.5.19.&lt;/li&gt;&lt;li&gt;DJVU plugin: fix opening files with non-latin chars in filename.&lt;/li&gt;&lt;li&gt;PDF plugin: freetype library updated to version 2.3.5.&lt;/li&gt;&lt;li&gt;TAB key switch between navigation pane and document (closed tickets #112, #123).&lt;/li&gt;&lt;li&gt;Zoom in/Zoom out menuitems and corresponding Ctrl++/Ctrl+- hotkeys.&lt;/li&gt;&lt;li&gt;Ctrl+Shift++/Ctrl+Shift+- hotkeys for rotate CW/CCW, Ctrl+P for Print   (closed ticket #108).&lt;/li&gt;&lt;li&gt;Opening external files from links in document.&lt;/li&gt;&lt;li&gt;Updated NLS-files: Czech, French, Dutch.&lt;/li&gt;&lt;/ul&gt;&lt;/small&gt;&lt;br /&gt;Screenshots:&lt;br /&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JR5B28yFbSA/RrCk8spO2GI/AAAAAAAAABM/oNzI8eZ8smE/s1600-h/Lucide_pdf.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_JR5B28yFbSA/RrCk8spO2GI/AAAAAAAAABM/oNzI8eZ8smE/s320/Lucide_pdf.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5093752541239236706" /&gt;&lt;/a&gt;&lt;br /&gt;Viewing PDF file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JR5B28yFbSA/RrCleMpO2HI/AAAAAAAAABU/fUoLRO5TRt4/s1600-h/Lucide_djvu.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_JR5B28yFbSA/RrCleMpO2HI/AAAAAAAAABU/fUoLRO5TRt4/s320/Lucide_djvu.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5093753116764854386" /&gt;&lt;/a&gt;&lt;br /&gt;Viewing DJVU file (magazine scan).&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;On &lt;a href="http://svn.netlabs.org/lucide/"&gt;Lucide page at Netlabs&lt;/a&gt; you may post bugreports and find toolkit for creating your own Lucide plugins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2045587657272768495?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2045587657272768495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2045587657272768495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2045587657272768495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2045587657272768495'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/08/lucide-101.html' title='Lucide 1.01'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_JR5B28yFbSA/RrCk8spO2GI/AAAAAAAAABM/oNzI8eZ8smE/s72-c/Lucide_pdf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-1096992078435582421</id><published>2007-06-26T18:33:00.000+03:00</published><updated>2009-04-25T12:11:40.367+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><title type='text'></title><content type='html'>My site (eros2.by.ru) not working fourth day...&lt;br /&gt;&lt;br /&gt;Fucking by.ru!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;UPD:&lt;/b&gt; now works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-1096992078435582421?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/1096992078435582421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=1096992078435582421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1096992078435582421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1096992078435582421'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/06/my-site-eros2.html' title=''/><author><name>eros2</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-7187023755917385731.post-6314564434717077631</id><published>2007-06-25T22:06:00.000+03:00</published><updated>2009-04-25T12:35:46.700+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'></title><content type='html'>Yet another two OS/2-related blogs by Michael Greene:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mikeos2.blogspot.com"&gt;Stupid OS/2 Crap&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uniaudscratchpad.blogspot.com"&gt;uniaud Scratchpad&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/7187023755917385731-6314564434717077631?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/6314564434717077631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=6314564434717077631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6314564434717077631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/6314564434717077631'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/06/yet-another-two-os2-related-blogs-by.html' title=''/><author><name>eros2</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-7187023755917385731.post-2168044470754745557</id><published>2007-04-29T13:36:00.000+03:00</published><updated>2009-04-25T12:36:15.141+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='pm downloader'/><title type='text'>PM Downloader 1.02</title><content type='html'>New version of &lt;b&gt;PM Downloader&lt;/b&gt; released. &lt;br /&gt;&lt;br /&gt;Fixed one bug with semaphore leak, which may cause PM Downloader hang on intensive use. &lt;br /&gt;&lt;br /&gt;Added option to limit number of simultaneous downloads from same host. This may be useful if you download several files from host which permit only limited number of connections &amp;mdash; so you may not reduce general number of downloads and download from other hosts in parallel.&lt;br /&gt;&lt;br /&gt;Get it from &lt;a href="http://www.eros2.info/pmdownloader_en.shtml"&gt;PM Downloader homepage&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2168044470754745557?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2168044470754745557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2168044470754745557' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2168044470754745557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2168044470754745557'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/04/pm-downloader-102.html' title='PM Downloader 1.02'/><author><name>eros2</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-1460890876952495211</id><published>2007-04-08T13:42:00.000+03:00</published><updated>2009-04-25T12:36:15.141+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='pm downloader'/><title type='text'>PM Downloader 1.01</title><content type='html'>New version of &lt;a href="http://www.eros2.info/pmdownloader_en.shtml"&gt;&lt;b&gt;PM Downloader&lt;/b&gt; released&lt;/a&gt;. No new features, just &lt;a href="http://www.eros2.info/pmdownloader_en.shtml#news"&gt;few bugfixes&lt;/a&gt;. Also, to prevent loss of downloaded data on power interrupt or system crash, PM Downloader will flush file buffers to disk every ten minutes.&lt;br /&gt;&lt;br /&gt;PM Downloader is the interactive multithreaded network retriever for OS/2 &amp;amp; eCS Presentation Manager supporting HTTP, HTTPS and FTP protocols for downloading files.&lt;br /&gt;&lt;br /&gt;Screenshot (click to enlarge):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JR5B28yFbSA/RhjK3rUAjBI/AAAAAAAAABE/Jg1WK9YlOl4/s1600-h/pmd101.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_JR5B28yFbSA/RhjK3rUAjBI/AAAAAAAAABE/Jg1WK9YlOl4/s320/pmd101.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5051010039964273682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-1460890876952495211?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/1460890876952495211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=1460890876952495211' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1460890876952495211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1460890876952495211'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/04/pm-downloader-101.html' title='PM Downloader 1.01'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JR5B28yFbSA/RhjK3rUAjBI/AAAAAAAAABE/Jg1WK9YlOl4/s72-c/pmd101.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-1111043209007215755</id><published>2007-03-17T11:06:00.000+02:00</published><updated>2009-04-25T12:13:08.386+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='SIM'/><title type='text'>SIM for OS/2</title><content type='html'>I just compiled and released &lt;a href="http://sim-im.org"&gt;SIM Instant Messenger&lt;/a&gt; version 0.9.4.3 for OS/2.&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;&lt;b&gt;Download:&lt;/b&gt; &lt;a href="http://www.eros2.info/download/sim-im-os2-0.9.4.3-r1.zip"&gt;sim-im-os2-0.9.4.3-r1.zip&lt;/a&gt; (9.2 MB)&lt;/strike&gt;&lt;br /&gt;&lt;font color=red&gt;Update from 05.12.2007&lt;/font&gt; - &lt;a href="http://eros2-dev.blogspot.com/2007/12/sim-im-for-os2-update.html"&gt;newer release available&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;SIM is powerful plugin-based multiprotocol instant messenger, which includes support for ICQ, AIM, MSN, Yahoo!, Jabber IM protocols and also can post into your &lt;a href="http://www.livejournal.com"&gt;LiveJournal&lt;/a&gt; journal and communities.&lt;br /&gt;&lt;br /&gt;SIM is based on &lt;a href="http://svn.netlabs.org/qt3"&gt;Qt toolkit&lt;/a&gt; (ported by dmik).&lt;br /&gt;&lt;br /&gt;Screenshots:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JR5B28yFbSA/Rfuzc7VHVhI/AAAAAAAAAAg/yRoCW8_nPE0/s1600-h/sim-chat.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_JR5B28yFbSA/Rfuzc7VHVhI/AAAAAAAAAAg/yRoCW8_nPE0/s320/sim-chat.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042821517315364370" /&gt;&lt;/a&gt;&lt;br /&gt;SIM and it's chat window.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_JR5B28yFbSA/Rfu0GrVHViI/AAAAAAAAAAo/WWrBRkO5h6I/s1600-h/sim-osd.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_JR5B28yFbSA/Rfu0GrVHViI/AAAAAAAAAAo/WWrBRkO5h6I/s320/sim-osd.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042822234574902818" /&gt;&lt;/a&gt;&lt;br /&gt;OSD plugin notification at lower-left corner, contact is typing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_JR5B28yFbSA/Rfu1V7VHVkI/AAAAAAAAAA4/0Nf-XYnL6GA/s1600-h/sim-weather1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_JR5B28yFbSA/Rfu1V7VHVkI/AAAAAAAAAA4/0Nf-XYnL6GA/s320/sim-weather1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5042823596079535682" /&gt;&lt;/a&gt;&lt;br /&gt;Weather plugin displays weather.&lt;br /&gt;&lt;br /&gt;SIM IM reviews (in Russian):&lt;br /&gt;&lt;a href="http://www.ixbt.com/soft/im.shtml#10"&gt;Обзор от iXBT&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itc.ua/article.phtml?ID=22610"&gt;Обзор от itc.ua&lt;/a&gt; (SIM в конце)&lt;br /&gt;&lt;a href="http://vonderer.blogspot.com/2007/01/jabber-2.html"&gt;Обзор jabber-клиентов&lt;/a&gt; (в том числе SIM)&lt;br /&gt;&lt;br /&gt;Note: This program requires &lt;a href="ftp://ftp.netlabs.org/pub/gcc/libc-0.6.1-csd1.zip"&gt;GCC 0.6.1 runtime library&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-1111043209007215755?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/1111043209007215755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=1111043209007215755' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1111043209007215755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/1111043209007215755'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/03/sim-for-os2.html' title='SIM for OS/2'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_JR5B28yFbSA/Rfuzc7VHVhI/AAAAAAAAAAg/yRoCW8_nPE0/s72-c/sim-chat.png' height='72' width='72'/><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-628786304627330130</id><published>2007-03-12T13:32:00.000+02:00</published><updated>2009-04-25T12:13:08.386+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='SIM'/><title type='text'>Qt, KDE, KTorrent, SIM...</title><content type='html'>Чего мне не хватает сейчас в OS/2, так это удобного torrent-клиента с навороченным GUI. Памятуя о том, что под OS/2 есть полнофункциональный &lt;a href="http://svn.netlabs.org/qt3/"&gt;Qt 3 toolkit&lt;/a&gt; (tnx to dmik), я начал искать опенсорсный торрент-клиент написанный с использованием Qt. К сожалению, клиента написанного на "чистом Qt" не нашлось, зато был обнаружен красивый и навороченный &lt;a href="http://ktorrent.org"&gt;KTorrent&lt;/a&gt;, который является &lt;a href="http://www.kde.org"&gt;KDE&lt;/a&gt;-приложением. KDE же, в свою очередь, также написан с использованием Qt. Собрать KTorrent, к сожалению, не удалось, сначала нужно собрать KDE, а это огромный объём работы. Даже не знаю, стоит ли браться. Но иметь KTorrent под осью очень хочется. :)&lt;br /&gt;&lt;br /&gt;Но не зря же я устанавливал Qt! Обломавшись с KTorrent, решил собрать что-нибудь поменьше. Под руку попался &lt;a href="http://sim-im.org"&gt;SIM&lt;/a&gt; &amp;mdash; очень симпатичный мультипротокольный instant messenger. Пара дней работы &amp;mdash; и получилось нечто вполне юзабельное:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_JR5B28yFbSA/RfU7b7VHVgI/AAAAAAAAAAY/srPjuZpKNcY/s1600-h/sim-os2-pre.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_JR5B28yFbSA/RfU7b7VHVgI/AAAAAAAAAAY/srPjuZpKNcY/s320/sim-os2-pre.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5041000708879898114" /&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/7187023755917385731-628786304627330130?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/628786304627330130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=628786304627330130' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/628786304627330130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/628786304627330130'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/03/qt-kde-ktorrent-sim.html' title='Qt, KDE, KTorrent, SIM...'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_JR5B28yFbSA/RfU7b7VHVgI/AAAAAAAAAAY/srPjuZpKNcY/s72-c/sim-os2-pre.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-8242490194035257409</id><published>2007-02-23T16:21:00.000+02:00</published><updated>2009-04-25T12:35:46.700+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>ссылочки</title><content type='html'>Некий товарищ работает над проектом WarpBSD и ведёт по этому поводу &lt;a href="http://warpbsd.blogspot.com/"&gt;блог&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://warpbsd.blogspot.com/2006/07/start-of-my-log.html"&gt;&lt;i&gt;... As part of my "WarpBSD" project, I would like to create opensource versions of various key OS/2 technologies ...&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: georgia;" href="http://evghoul.livejournal.com/546575.html?thread=2800399#t2800399"&gt;&lt;i&gt;...А OS/2 пока тихо спит под водами океана, ожидая своего часа, но она вполне жива...&lt;/i&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-8242490194035257409?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/8242490194035257409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=8242490194035257409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8242490194035257409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/8242490194035257409'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/02/blog-post_23.html' title='ссылочки'/><author><name>eros2</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-7187023755917385731.post-2738597997545716895</id><published>2007-02-22T12:51:00.000+02:00</published><updated>2009-04-25T12:11:40.369+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><title type='text'>Новый видеоплейер для OS/2: K Movie Player</title><content type='html'>Кореец KO Myung-Hun взял FFplay, оторвал от него SDL, сделал поддержку DIVE и WarpOverlay!, и выпустил &lt;a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&amp;button=Search&amp;key=K+Movie+Player&amp;stype=exact&amp;sort=type&amp;dir=%2F"&gt;K Movie Player&lt;/a&gt;. Получилось нечто вроде WarpVision cli. Поддерживает кучу форматов, в том числе flv, так что теперь можно смотреть в OS/2 клипы, &lt;a href="http://eros2.livejournal.com/72799.html"&gt;скачанные с YouTube&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Работает вполне неплохо для версии 0.1.0.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_JR5B28yFbSA/Rd14vvSPuqI/AAAAAAAAAAM/7pywBPqLcgU/s1600-h/kmp_os2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_JR5B28yFbSA/Rd14vvSPuqI/AAAAAAAAAAM/7pywBPqLcgU/s320/kmp_os2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5034312720012262050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В комстроке использован параметр "-video dive", т.к. по умолчанию используется WarpOverley!, а скриншот оверлея сделать нельзя.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2738597997545716895?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2738597997545716895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2738597997545716895' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2738597997545716895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2738597997545716895'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/02/os2-k-movie-player.html' title='Новый видеоплейер для OS/2: K Movie Player'/><author><name>eros2</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_JR5B28yFbSA/Rd14vvSPuqI/AAAAAAAAAAM/7pywBPqLcgU/s72-c/kmp_os2.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7187023755917385731.post-2739798414588915497</id><published>2007-02-22T11:34:00.003+02:00</published><updated>2009-04-25T12:34:56.156+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='p2p'/><title type='text'>проблемы файлообменных программ в OS/2</title><content type='html'>&lt;a href="http://www.limewire.com"&gt;LimeWire&lt;/a&gt; в течение нескольких лет была основной файлообменной программой работавшей в OS/2. Проблемы начались с версии 4.3.хх &amp;mdash; какой-то код задел баг в GoldenCode JVM, что привело к неприятным последствиям &amp;mdash; иногда LimeWire мёртво завешивала PM, так что даже не двигалась мышь и не вызывался WatchCat. Приходилось нажимать Ctrl-Alt-Del. Можно было использовать IBM JVM 1.3.1, но она работала медленней и LimeWire иногда выкидывала странные exceptions. Innotek OS/2 Kit for Java тоже был сыроват и любил зависать.&lt;br /&gt;Начиная с версии 4.9.хх, LimeWire перестала работать под Java 1.3. А проблемы с сокетами в Innotek OS/2 Kit for Java привели к тому, что LimeWire отваливалась от сети при поиске.&lt;br /&gt;В то же время, работа самой LimeWire значительно улучшилась, использование старых версий стало анахронизмом.&lt;br /&gt;Тогда для личного использования с GoldenCode JVM я начал делать сборку LimeWire включавшую gui от версии 4.2.6 и core последней версии. Это работало, но поддержка nio в GoldenCode JVM также небезупречна, LimeWire иногда отваливалась от сети. Ситуация изменилась с core версии 4.12.хх &amp;mdash; отваливаться от сети перестало, но начало грузить процессор. (Надо ли говорить, что под Windows всё работало нормально?)&lt;br /&gt;&lt;br /&gt;Далее, вышедшая бета LimeWire 4.13 потребовала JVM версии 1.5. Да, Sum Java 1.5 for Windows вполне можно запустить в оси используя InnoWin, но проблемы с сокетами там такие же как и у Innotek OS/2 Kit for Java. &lt;br /&gt;&lt;br /&gt;Основной вопрос тут &amp;mdash; появится ли под OS/2 JVM версии 1.5 или 1.6? Пока, под портирование этого дела коммьюнити &lt;a href="http://www.os2world.com/cgi-bin/news/viewnews.cgi?category=57&amp;id=1140371343"&gt;собрало  305 долларов&lt;/a&gt;, что просто несерьёзно.&lt;br /&gt;&lt;br /&gt;Разочаровавшишь в попытках заставить LimeWire прилично работать под OS/2, я задумался о портировании какого либо файлообменного софта.&lt;br /&gt;&lt;br /&gt;Выбор сетей тут невелик &amp;mdash; либо eDonkey2000, которая не нравится мне идеологией построения, либо Gnutella. &lt;br /&gt;&lt;br /&gt;Я просмотрел все &lt;a href="http://en.wikipedia.org/wiki/Gnutella#Software"&gt;программы с открытым исходным кодом для сети Gnutella&lt;/a&gt;, из которых можно было бы взять ядро и навернуть поверх него осёвый гуй. Результаты неутешительные.&lt;br /&gt;&lt;br /&gt;Варианты:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/GiFT"&gt;giFT&lt;/a&gt; - безнадёжно устарел, последняя версия от 2004-го года, не поддерживает даже поиск в юникоде.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Mutella"&gt;Mutella&lt;/a&gt; - то же самое.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Gnucleus"&gt;Gnucleus&lt;/a&gt; - то же самое, да ещё и использует MFC.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Gtk-gnutella"&gt;Gtk-Gnutella&lt;/a&gt; - более-менее приличное ядро, неторопливо развивается. Нет поддержки метаданных, нет последних фич поиска источников, использует glib (впрочем, я надеюсь это не слишком непреодолимое препятствие).&lt;br /&gt;&lt;br /&gt;К сожалению, по сравнению с LimeWire все они тихо курят в сторонке, особенно в свете скорой поддержки DHT в LimeWire. Хотя, в сторону Gtk-Gnutella стоит посмотреть. Но надо выждать, если после того, как LimeWire введёт DHT, Gtk-Gnutella сделает поддержку этого DHT &amp;mdash; тогда, определённо, нужно будет заняться портированием.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7187023755917385731-2739798414588915497?l=blog.eros2.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.eros2.info/feeds/2739798414588915497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7187023755917385731&amp;postID=2739798414588915497' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2739798414588915497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7187023755917385731/posts/default/2739798414588915497'/><link rel='alternate' type='text/html' href='http://blog.eros2.info/2007/02/os2.html' title='проблемы файлообменных программ в OS/2'/><author><name>eros2</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>2</thr:total></entry></feed>
