<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:anna_safronova</id>
  <title>Журнал "Юный разработчик web-приложений"</title>
  <subtitle>Anna Safronova</subtitle>
  <author>
    <name>Anna Safronova</name>
  </author>
  <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom"/>
  <updated>2009-08-13T12:19:56Z</updated>
  <lj:journal userid="14058593" username="anna_safronova" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://anna-safronova.livejournal.com/data/atom" title="Журнал &quot;Юный разработчик web-приложений&quot;"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:5235</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/5235.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=5235"/>
    <title>anna_safronova @ 2009-08-13T16:12:00</title>
    <published>2009-08-13T12:19:56Z</published>
    <updated>2009-08-13T12:19:56Z</updated>
    <category term="eclipse"/>
    <category term="tomcat"/>
    <category term="ubuntu"/>
    <content type="html">First of all, I&amp;nbsp;finally started a new job.&lt;br /&gt;&lt;br /&gt;Second, i want to underline that starting Tomcat using sudo (as I adviced in last post) is not a good idea because of security. &lt;br /&gt;&lt;br /&gt;And third, what is the most important - I&amp;nbsp;understood all advantages of open-source platforms, frameworks and tools. Funny thing is that now I'm using Eclipse and I'm completely happy about it!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:5056</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/5056.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=5056"/>
    <title>Java and Tomcat in Ubuntu. Quick start.</title>
    <published>2009-07-24T08:32:08Z</published>
    <updated>2009-07-24T08:33:41Z</updated>
    <category term="java_home"/>
    <category term="tomcat"/>
    <category term="ubuntu"/>
    <content type="html">First I should mention that I&amp;acute;m just a beginner and I don&amp;acute;t pretend to call myself as Ubuntu professional, but i started to work with it and noticed that Internet contains a lot of messy information that doesn&amp;acute;t allow you to start quick.&lt;br /&gt;&lt;br /&gt;1) You should install Java. &lt;ul&gt;&lt;li&gt;Run terminal from Applications - &amp;gt; Accessories.&lt;/li&gt;&lt;li&gt;Enter in terminal command &lt;strong&gt;gksudo synaptic &lt;/strong&gt;&lt;/li&gt;&lt;li&gt;There will start an application which allows you to install software/libraries you need automatically. Select in quick search &amp;uml;sun&amp;uml; or &amp;uml;java&amp;uml; and install version you want to use.&lt;/li&gt;&lt;/ul&gt;2) Probably another versions of Java already exists on your machine. Use&lt;strong&gt; sudo update-alternatives --config java&lt;/strong&gt; to choose version you want to work.&lt;br /&gt;&lt;br /&gt;3) Now you should set JAVA_HOME as env variable, else Tomcat couldn&amp;acute;t start.&lt;ul&gt;&lt;li&gt;Use &lt;strong&gt;gedit ~/.bashrc&lt;/strong&gt; to edit file.&lt;/li&gt;&lt;li&gt;Add to file links : export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/ (write your directory)&lt;br /&gt;export CLASSPATH=/usr/share/tomcat5.5/common/lib/jsp-api.jar:/usr/share/tomcat5.5/common/lib/servlet-api.jar (write your directory).&lt;/li&gt;&lt;li&gt;Please note that JAVA_HOME is defined now only for LOCAL user and ADMINISTRATOR know nothing about this variable. You can&amp;acute;t run Tomcat WITHOUT command sudo.&lt;/li&gt;&lt;li&gt;Use &lt;strong&gt;sudo env&lt;/strong&gt; to see that JAVA_HOME is not in the list.&lt;/li&gt;&lt;li&gt;Run &lt;strong&gt;sudo visudo&lt;/strong&gt; to add JAVA_HOME in list.&lt;/li&gt;&lt;li&gt;Add line &amp;quot;Defaults env_keep+=JAVA_HOME&amp;quot;  in the file.&lt;/li&gt;&lt;li&gt;Exit using Ctrl + X.&lt;/li&gt;&lt;li&gt;Use sudo env to see that JAVA_HOME IS now in the list.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;4) Run Tomcat.&lt;ul&gt;&lt;li&gt;Please note that you should install Tomcat the same way as i described in 1)&lt;/li&gt;&lt;li&gt;Run Tomcat using &lt;strong&gt;sudo /usr/share/tomcat5.5/bin/startup.sh&lt;/strong&gt; (of course, use your directory)&lt;/li&gt;&lt;li&gt;You will see smth like this&lt;br /&gt;Using CATALINA_BASE:   /usr/share/tomcat5.5&lt;br /&gt;Using CATALINA_HOME:   /usr/share/tomcat5.5&lt;br /&gt;Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp&lt;br /&gt;Using JRE_HOME:       /usr/lib/jvm/java-6-openjdk/&lt;/li&gt;&lt;/ul&gt;Good luck!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:4625</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/4625.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=4625"/>
    <title>Перешли на SVN, появились проблемы.</title>
    <published>2009-04-22T12:18:27Z</published>
    <updated>2009-04-22T12:18:27Z</updated>
    <category term="vcs"/>
    <category term="svn"/>
    <category term="cvs"/>
    <content type="html">Update под branch в SVN, немногие знают,&amp;nbsp;а это возможно.&lt;br /&gt;&lt;br /&gt;If you want to work with branch, but don't want to checkout it, you can use menu TortoiseSVN &amp;rarr; Switch... that will update your folder according to the url of branch.&lt;br /&gt;&lt;br /&gt;The bad thing is that TortoiseSVN still make checkout, not update of binary files (libs and etc), good thing is that update by branch of Java classes is the same as in CVS.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:4418</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/4418.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=4418"/>
    <title>No comments.</title>
    <published>2009-04-20T13:56:23Z</published>
    <updated>2009-04-20T13:58:24Z</updated>
    <content type="html">&amp;ldquo;The traditionally limited computer resources in Russia make Russian programmers more creative in their solutions,&amp;rdquo; said Dan Dougan from St. Petersburg based Jensen Technologies. To put it more bluntly, Russian programmers can&amp;rsquo;t afford to buy their own computer so they put it together by hand.&amp;quot;&lt;br /&gt;&lt;br /&gt;(c) official website, September 2001</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:4113</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/4113.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=4113"/>
    <title>Sun Tech Days 2009</title>
    <published>2009-04-08T19:12:13Z</published>
    <updated>2009-04-08T19:12:13Z</updated>
    <category term="suntechdays"/>
    <content type="html">&lt;p align="left"&gt;&lt;a href="http://narod.ru/disk/7513645000/javascript_performance.rar.html"&gt;&amp;quot;Ajax: инфраструктура, производительность и передовой опыт&amp;quot;&lt;strong&gt;  Doris Chen&lt;br /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="http://narod.ru/disk/7513574000/mySQL-5-1.rar.html"&gt;&amp;quot;MySQL: взгляд в будущее&lt;span style="font-weight: bold;"&gt;&amp;quot; &lt;/span&gt;&lt;strong&gt;Константин Осипов&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://narod.ru/disk/7513645000/javascript_performance.rar.html"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;- по ссылка архивы с фотками слайдов. Фоткала то,&amp;nbsp;что считала нужным :-)&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:3895</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/3895.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=3895"/>
    <title>Генерация классов данных при помощи скрипта ant по hbm</title>
    <published>2009-04-08T15:29:49Z</published>
    <updated>2009-04-08T15:30:44Z</updated>
    <category term="ant"/>
    <category term="hibernate"/>
    <content type="html">&lt;p style="padding-left: 15px; background-color: rgb(204, 204, 204);"&gt;&lt;target name="codegen" description="Generate Java source from the O/R mapping files"&gt;&amp;lt;target name=&amp;quot;codegen&amp;quot; description=&amp;quot;Generate Java source from the O/R mapping files&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;taskdef name=&amp;quot;hbm2java&amp;quot; classname=&amp;quot;net.sf.hibernate.tool.hbm2java.Hbm2JavaTask&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;hbm2java output=&amp;quot;${src.dir}&amp;quot; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;            &amp;lt;fileset dir=&amp;quot;${hbm}/com/your_wayl&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;                &amp;lt;!--&amp;lt;include name=&amp;quot;YourName1.hbm.xml&amp;quot;/&amp;gt;--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;                &amp;lt;include name=&amp;quot;&lt;/target&gt;YourName2&lt;target name="codegen" description="Generate Java source from the O/R mapping files"&gt;.hbm.xml&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&amp;lt;include name=&amp;quot;&lt;/target&gt;YourName3&lt;target name="codegen" description="Generate Java source from the O/R mapping files"&gt;.hbm.xml&amp;quot;/&amp;gt;--&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;            &amp;lt;/fileset&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;lt;/hbm2java&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"&gt;&lt;/taskdef&gt;&lt;hbm2java output="${src.dir}"&gt;&lt;br /&gt;&lt;/hbm2java&gt;&lt;br /&gt;    &lt;/target&gt;&lt;/p&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:3817</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/3817.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=3817"/>
    <title>What does my boyfriend say about using IE...</title>
    <published>2009-01-25T17:57:26Z</published>
    <updated>2009-01-25T17:57:26Z</updated>
    <content type="html">&amp;quot;Webbrowsing with IE is like having a car without a lock, without any codes to start or so. And you just park it somewhere and place a sign on it: Free joyriding&amp;quot;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:3555</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/3555.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=3555"/>
    <title>anna_safronova @ 2008-10-13T22:49:00</title>
    <published>2008-10-13T18:52:19Z</published>
    <updated>2008-10-13T18:52:19Z</updated>
    <lj:music>Laam - Petite Soeur</lj:music>
    <content type="html">Один из самых странных вопросов на собеседовании за тот период, что я ищу работу, я услышала сегодня. &lt;br /&gt;&lt;br /&gt;Меня попросили вспомнить ASCII код для пробела. Должность, напомню, j2ee developer. Много думала. Наверное, это очень важно знать любому программисту, чтобы так, знаете, сходу назвать =) А вы помните? ;-) &lt;br /&gt;&lt;br /&gt;Да, и поскольку в этом ЖЖ я не писала - я официально ищу работу. Настолько официально, что даже начальника уже предупредила. Скачать резюме можно &lt;a href="http://narod.ru/disk/2901934000/Anna%20Safronova%20CV%20(copy%202).doc.html"&gt;здесь&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Рассматривается переезд в Москву, Европу и США.&lt;br /&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:3181</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/3181.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=3181"/>
    <title>Новости с полей.</title>
    <published>2008-07-13T07:50:33Z</published>
    <updated>2008-07-13T07:50:33Z</updated>
    <category term="web-services"/>
    <content type="html">1) spring-ws (начиная с ver 1.5) работает не только с SOAP'ом, но и с REST'ом. Unbelivable! &lt;br /&gt;&lt;br /&gt;2) spring-ws поддерживает Castor, начиная с версии 1.2. Не смотря на это, предоставленный на сайте springframework архив вэб сервисов со всеми dependencies включает библиотеку Castor'a 1.1. Дескать, догадайтесь сами и скачайте 1.2. &lt;br /&gt;&lt;br /&gt;3) &lt;strike&gt;I hate web-services.&lt;/strike&gt; Судя по тому, что я нашла, технология появилась аж в 2001-ом, однако обороты стала набирать в последние годы. И думаю, что в ближайшем будущем перед любым мало-мальским серьёзным вэб-приложением помимо каких-то основных функций будет в обязательно порядке ставиться задача реализации клиентской или серверной стороны вэб службы. &lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:2943</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/2943.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=2943"/>
    <title>anna_safronova @ 2008-06-11T15:59:00</title>
    <published>2008-06-11T12:09:04Z</published>
    <updated>2008-06-11T12:09:04Z</updated>
    <category term="work"/>
    <content type="html">&lt;p&gt;Давеча в icq постучалась барышня из рекрутинговой конторы. Интересовалась моим знанием немецкого, предлагала работу в каком-то представительстве какой-то компании...&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Вот я думаю - резюме моего в открытом доступе нигде не висит, а барышня начала свой разговор без прелюдий и вопроса "ищите ли Вы работу?"... Это что значит,&amp;nbsp; любой разработчик по умолчанию всегда в активном поиске местечка, где&amp;nbsp; &lt;strike&gt;зарплата побольше&lt;/strike&gt; хлеба послаще, да &lt;strike&gt;проект поденежней&lt;/strike&gt; трава позеленее или как? =)&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:2716</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/2716.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=2716"/>
    <title>Не могу с вами не поделиться :-))</title>
    <published>2008-05-23T13:09:18Z</published>
    <updated>2008-05-23T13:09:18Z</updated>
    <content type="html">&lt;img alt="" hspace="5" vspace="5" src="http://i50.photobucket.com/albums/f324/ann1024/DevelopersAreBornBrave_Small.jpg" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;&lt;font size="1"&gt;Взято у&amp;nbsp; &lt;span class='ljuser ljuser-name_catty_ua' lj:user='catty_ua' style='white-space: nowrap;'&gt;&lt;a href='http://catty-ua.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://catty-ua.livejournal.com/'&gt;&lt;b&gt;catty_ua&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.&lt;/font&gt;&lt;/em&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:2524</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/2524.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=2524"/>
    <title>JAXB Marshaller. Problem of forced escaping tags (how to configure the marshalling process)</title>
    <published>2008-05-16T13:59:28Z</published>
    <updated>2008-05-16T14:00:52Z</updated>
    <category term="jaxb"/>
    <category term="escaping characters"/>
    <category term="xml"/>
    <content type="html">&lt;br /&gt;&lt;b&gt;Problem.&lt;/b&gt; By default, the marshaller implementation of the JAXB usually escapes characters. Sometimes we don’t want to escape characters, for example if we want to get xml-document with CDATA we don’t want to see smth like: &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;span lang="EN-US"&gt;&lt;font size="2"&gt;&lt;br /&gt;&amp;lt;description&amp;gt;&amp;amp;lt;![CDATA[&amp;amp;lt;html&amp;amp;gt;text&amp;amp;gt;&amp;amp;lt;/html&amp;amp;gt;]]&amp;amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Solution.&lt;/b&gt; &lt;br /&gt;1. Write a class that implements the com.sun.xml.bind.marshaller.CharacterEscapeHandler interface. &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;import com.sun.xml.bind.marshaller.CharacterEscapeHandler; &lt;br /&gt;import java.io.IOException; &lt;br /&gt;import java.io.Writer; &lt;br /&gt;&lt;br /&gt;public class NoEscapeHandler implements CharacterEscapeHandler {&amp;nbsp;&lt;br /&gt;&lt;br /&gt;private NoEscapeHandler() { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(); &lt;br /&gt;} &lt;br /&gt;public static final NoEscapeHandler theInstance = new NoEscapeHandler(); &lt;br /&gt;/** &lt;br /&gt;* Escape characters inside the buffer and send the output to the writer. &lt;br /&gt;* &lt;br /&gt;* @param buf buffer of characters to be encoded &lt;br /&gt;* @param start the index position of the first character that should be encoded &lt;br /&gt;* @param len the number of characters that should be encoded &lt;br /&gt;* @param isAttValue true, if the buffer represents an XML tag attribute &lt;br /&gt;* @param out the output stream &lt;br /&gt;* @throws IOException if the writing process fails &lt;br /&gt;*/ &lt;br /&gt;&amp;nbsp;&amp;nbsp; public void escape(char[] buf, int start, int len, boolean isAttValue, Writer out) throws IOException { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = start; i &amp;lt; start + len; i++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; out.write(buf[i]);&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp; return; &lt;br /&gt;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;} &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;2. Set that instance to the Marshaller by using this property. &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;CharacterEscapeHandler escapeHandler = NoEscapeHandler.theInstance; &lt;br /&gt;marshaller.setProperty("com.sun.xml.bind.characterEscapeHandler", escapeHandler);&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3. Enjoy! &lt;br /&gt;&lt;/p&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;&lt;description&gt;&lt;/description&gt;&amp;lt;description&amp;gt;&amp;lt;![CDATA[&amp;lt;html&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/html&amp;gt;]]&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&amp;nbsp;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:2098</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/2098.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=2098"/>
    <title>Маленькие ошибки больших гигантов.</title>
    <published>2008-05-06T14:38:36Z</published>
    <updated>2008-05-06T14:40:10Z</updated>
    <content type="html">На gmail&amp;nbsp;почти такая же ошибка, о которой я писала &lt;a href="http://anna-safronova.livejournal.com/1768.html"&gt;здесь&lt;/a&gt;&amp;nbsp;- "operation aborted". Возможные причины - тяжеловесный скрипт. Поскольку, IE 7 (молчите, гусары!) - мой основной браузер, то ошибка раздражает не по-детски...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:1918</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/1918.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=1918"/>
    <title>anna_safronova @ 2008-04-23T19:13:00</title>
    <published>2008-04-23T15:22:13Z</published>
    <updated>2008-04-23T15:23:03Z</updated>
    <content type="html">&lt;p&gt;Когда год назад я писала диплом на тему, связанную с автоматизацией рефакторинга, я искренне считала, что&amp;nbsp;"рефакторинг" - это&amp;nbsp;главное слово в словосочетании "автоматизированный рефакторинг", теперь понимаю - нет, главное в этом словосочетании слово "автоматизированный"! &lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:1768</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/1768.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=1768"/>
    <title>Хозяйке на заметку.</title>
    <published>2008-02-22T10:52:53Z</published>
    <updated>2008-02-22T10:52:53Z</updated>
    <category term="firefox &amp;amp; ie"/>
    <content type="html">Проблемы с показом карты (Google Maps и иже с ними) на странице в IE 7 (сообщение “operation aborted”) связаны с тем, что карта загрузиться ещё не успела, а уже начинает грузиться оставшаяся часть страницы. Решается путём выставления тайм-аута на инициализацию карты.&amp;nbsp;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:1383</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/1383.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=1383"/>
    <title>Предновогодняя заметка про Jasper Reports.</title>
    <published>2007-12-29T13:49:41Z</published>
    <updated>2007-12-29T13:49:41Z</updated>
    <category term="jasperreports"/>
    <content type="html">В первую очередь, мне хотелось бы отметить, что лучше, чем сказали про Jasper Reports ребята здесь - http://voituk.kiev.ua/intro-jasper-reports/ , не найти. По крайней мере, это очень хороший мануал для новичков и тех, кто хочет просто начать и делать. &lt;br /&gt;&lt;br /&gt;Мне бы хотелось заострить своё внимание на одном достаточно интересном моменте. Интернет пестрит сообщениями ребят, которые хотят, чтобы им пояснили синтаксис jrxml. Дело в том, что для контроля вывода того или иного элемента отчёта можно воспользоваться простым или сложным булевским выражением. Со сложными булевскими выражениями не так всё просто - мало написать CDATA - выражение нужно обернуть в new Boolean.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;lt;textField isStretchWithOverflow="true"&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;lt;reportElement positionType="Float" x="615" y="0" width="70" height="25" style="Arial_Normal"&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;printWhenExpression&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[new Boolean(!("5").equals($P{JobScope}) &amp;amp;&amp;amp; !("4").equals($P{JobScope}))]]&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/printWhenExpression&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/reportElement&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;box bottomBorder="Thin" rightBorder="Thin" leftPadding="5" topPadding="5" bottomPadding="5" rightPadding="5" borderColor="#DADCE1"/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;lt;textElement/&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;lt;textFieldExpression class="java.lang.Long"&amp;gt;&amp;lt;![CDATA[$F{totalLogins}]]&amp;gt;&amp;lt;/textFieldExpression&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;lt;/textField&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;br /&gt;Однако, чуть позже, я поняла, что впихивать сложное булевское выражение в jrxml для того чтобы понять, нужен нам этот элемент в данном конкретном отчёте или нет – это изврат. В библотеке jasperreports есть замечательный класс JRDefaultScriptlet, от которого мы можем наследовать свой класс MyScriptlet. В методе afterDetailEval() мы присваиваем значения переменным и параметрам, которые будут использоваться в нашем отчёте, а в, к примеру, mySummary() будем производить различные операции и принимать решение, что в итоге будет выводиться “” или “Count: 212” &lt;br /&gt;&lt;br /&gt;Обращаться к методу в jrxml будем следующим образом :&amp;nbsp;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&amp;lt;textField isStretchWithOverflow="true"&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;reportElement positionType="Float" x="175" y="140" width="200" height="20" forecolor="#993300" style="Arial_Bold"&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/reportElement&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textElement textAlignment="Center"/&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;font color="#666699"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;textFieldExpression class="java.lang.String"&amp;gt;&amp;lt;![CDATA[(( reports.scriptlets.MyScriptlet)$P{REPORT_SCRIPTLET}). mySummary()]]&amp;gt;&amp;lt;/textFieldExpression&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#666699"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;/textField&amp;gt;&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;Спасибо за внимание и с наступающим Новым Годом, дорогие!&amp;nbsp;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:1240</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/1240.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=1240"/>
    <title>anna_safronova @ 2007-11-12T16:50:00</title>
    <published>2007-11-12T13:58:55Z</published>
    <updated>2007-11-12T14:00:31Z</updated>
    <category term="javascript"/>
    <category term="firefox &amp;amp; ie"/>
    <content type="html">Итак, сегодня мы поговорим об одной маленькой, но неприятной вещи, с которой можно столкнуться, делая раскрывающийся список.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Дело в том, что выставляя getElementById(elem).style.display = "none" и getElementById(elem).style.display = "block", мы получаем лишнее пространство за свёрнутым списком в firefox'e. Проблема решается так - вместо getElementById(elem).style.display = "block"; мы полностью сбрасываем значение display следующим образом: getElementById(elem).style.display = "".&amp;nbsp;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:851</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/851.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=851"/>
    <title>Хороший код - минимизация ошибок.</title>
    <published>2007-10-21T18:49:19Z</published>
    <updated>2007-10-21T18:55:16Z</updated>
    <category term="код"/>
    <content type="html">Если есть что-то, что мне не нравится в чужом коде, так это, когда пишут вот так: &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;if(smth) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return yYY; &lt;br /&gt;//bla-bla-bla &lt;br /&gt;if(anotherSmth) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doAnotherSmth(); &lt;br /&gt;if(notAnotherSmth) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return xXX;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;Блин, но это же рассадник для ошибок! Я вполне могу вклиниться в какой-нибудь if, вписать какую-нибудь дурь и совершенно забыть, что if это не увидит, ибо я забыла поставить фигурные скобки. &lt;br /&gt;&lt;br /&gt;Я считаю, что нужно писать так: &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;if(smth) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return yYY; &lt;br /&gt;} &lt;br /&gt;//bla-bla-bla &lt;br /&gt;if(anotherSmth) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doAnotherSmth(); &lt;br /&gt;} &lt;br /&gt;if(notAnotherSmth) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return xXX; &lt;br /&gt;}&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Накрайняк, можно и так, если мой вариант кажется слишком топорным: &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;if(smth) { return yYY;} &lt;br /&gt;//bla-bla-bla &lt;br /&gt;if(anotherSmth) { doAnotherSmth(); } &lt;br /&gt;if(notAnotherSmth) { return xXX; } &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&amp;nbsp;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:anna_safronova:663</id>
    <link rel="alternate" type="text/html" href="http://anna-safronova.livejournal.com/663.html"/>
    <link rel="self" type="text/xml" href="http://anna-safronova.livejournal.com/data/atom/?itemid=663"/>
    <title>outerHTML для Firefox.</title>
    <published>2007-10-18T13:59:01Z</published>
    <updated>2007-10-18T15:54:33Z</updated>
    <category term="javascript"/>
    <category term="firefox &amp;amp; ie"/>
    <content type="html">&lt;br /&gt;document.getElementById(ElementID).outerHTML вещь совершенно бесполезная для Firefox. Даже ошибки этот браузер Вам не покажет, а работать не будет. Как быть? &lt;br /&gt;&lt;br /&gt;В интернете описана масса способов решения данной проблемы, однако наиболее простым способом лично для меня оказался вот этот: &lt;br /&gt;&lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;function setOuterHTML(ElementID, txt) &lt;br /&gt;{ &lt;br /&gt;var someElement = document.getElementById(ElementID);&amp;nbsp;&lt;br /&gt;&lt;br /&gt;//работает для IE, но не работает для Firefox.&lt;br /&gt;if (someElement.outerHTML) &lt;br /&gt;{ &lt;br /&gt;someElement.outerHTML = txt; &lt;br /&gt;}&amp;nbsp;&lt;br /&gt;&lt;br /&gt;//работает для Firefox, но не работает для IE.&lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;var range = document.createRange(); &lt;br /&gt;range.setStartBefore(someElement); &lt;br /&gt;var docFrag = range.createContextualFragment(txt); &lt;br /&gt;someElement.parentNode.replaceChild(docFrag, someElement); &lt;br /&gt;} &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;Так, например, обратившись к функции setOuterHTML, мы сможем заменить options для select'a. &lt;br /&gt;&lt;p style="PADDING-LEFT: 15px; BACKGROUND-COLOR: #cccccc"&gt;&lt;br /&gt;var newSelect = "&amp;lt;SELECT id='userOtionSet' name='&amp;lt;%=ReportAdminServlet.PARAM_USER_ID %&amp;gt;' class='blackText' &amp;gt;" + users + "&amp;lt;/SELECT&amp;gt;";&amp;nbsp;&lt;br /&gt;&lt;br /&gt;setOuterHTML("userOtionSet", newSelect);&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&amp;nbsp;&lt;br /&gt;</content>
  </entry>
</feed>
