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

<channel>
	<title>Dariusz Cieślak&#039;s Blog on Software</title>
	<atom:link href="http://blog.aplikacja.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.aplikacja.info</link>
	<description>The Art of Open Source Software - Developer Point of View</description>
	<lastBuildDate>Wed, 18 Aug 2010 15:47:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;Usability&#8221; na przykładzie bankomatu</title>
		<link>http://blog.aplikacja.info/2010/08/usability-na-przykladzie-bankomatu/</link>
		<comments>http://blog.aplikacja.info/2010/08/usability-na-przykladzie-bankomatu/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 15:34:09 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[pl]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1259</guid>
		<description><![CDATA[Niedawno miałem okazję przekonać się jak ukształtowanie interfejsu użytkownika może wpływać na sposób w jaki aplikacja będzie odbierana przez użytkowników. W skrajnym przypadku może prowadzić do odrzucenia systemu.
Czekając w kolejce do bankomatu zauważyłem, że dwie osoby przede mną odchodzą nie pobierając gotówki. Gdyby to była tylko jedna osoba pomyślałbym, że chodzi o brak środków na [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/08/bankomat.jpeg"><img class="alignright size-full wp-image-1262" title="bankomat" src="http://blog.aplikacja.info/wp-content/uploads/2010/08/bankomat.jpeg" alt="" width="280" height="210" /></a>Niedawno miałem okazję przekonać się jak <strong>ukształtowanie interfejsu użytkownika</strong> może wpływać na sposób w jaki aplikacja będzie odbierana przez użytkowników. W skrajnym przypadku może prowadzić do odrzucenia systemu.</p>
<p>Czekając w kolejce do bankomatu zauważyłem, że dwie osoby przede mną <strong>odchodzą nie pobierając gotówki</strong>. Gdyby to była tylko jedna osoba pomyślałbym, że chodzi o brak środków na koncie. Gdy druga osoba odebrała kartę obstawiałem problem z bankomatem. Postanowiłem sprawdzić co jest przyczyną problemów.</p>
<p>Na pierwszym ekranie widocznym po włożeniu karty pojawiło się pytanie:</p>
<p style="text-align: center; font-size: 150%;"><strong>Czy potrzebujesz gotówki?</strong></p>
<p>Poniżej znajdowały się dwa przyciski: TAK i NIE. Pytanie wydało mi się dziwne jak na bankomat sieci Euronet.</p>
<p><span id="more-1259"></span></p>
<p>Kiedy użytkownik wybierał &#8220;TAK&#8221; (przecież po gotówkę przyszedł do bankomatu) <strong>kierowany był na stronę ze szczegółami reklamy kredytów gotówkowych</strong> i &#8220;głupiał&#8221;. Użytkownik oczekiwał przecież pojawienia się menu bankomatu, dostawał coś mylącego. Rezygnował więc z transakcji (&#8220;bankomat zepsuty&#8221;) i odchodził.</p>
<p>Aby móc dokończyć transakcję należało wybrać &#8220;NIE&#8221; &#8211; dalej procedura przebiegała już standardowo.</p>
<p>Tak oto z mojego małego doświadczenia można wnioskować, że prosty błąd popełniony na etapie projektowania interfejsu użytkownika potrafi <strong>zniechęcić większość potencjalnych użytkowników</strong> systemu. Nie był to błąd działania systemu (nie poleciał żaden wyjątek, salda zachowały poprawną wartość), ale operacja do której bankomat był stworzony nie doszła do skutku.</p>
<p>Stało się tak, ponieważ przy integracji komponentów (nowa wersja reklamy w istniejącym UI bankomatu) nie sprawdzono jak całość zostanie odebrana przez klientów. Nie dokonano &#8220;testów integracyjnych na poziomie interfejsów białkowych&#8221;. Z moich doświadczeń wynika, że <strong>styk człowiek-komputer jest trudniejszy do oprogramowania</strong> niż interfejsy pomiędzy komponentami oprogramowania.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;title=%22Usability%22+na+przyk%C5%82adzie+bankomatu"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;title=%22Usability%22+na+przyk%C5%82adzie+bankomatu"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;title=%22Usability%22+na+przyk%C5%82adzie+bankomatu"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;headline=%22Usability%22+na+przyk%C5%82adzie+bankomatu"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;title=%22Usability%22+na+przyk%C5%82adzie+bankomatu&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fusability-na-przykladzie-bankomatu%2F&amp;title=%22Usability%22+na+przyk%C5%82adzie+bankomatu"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/08/usability-na-przykladzie-bankomatu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Switch &#8220;origin&#8221; of your GIT repository</title>
		<link>http://blog.aplikacja.info/2010/08/switch-origin-of-your-git-repository/</link>
		<comments>http://blog.aplikacja.info/2010/08/switch-origin-of-your-git-repository/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 20:16:30 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1253</guid>
		<description><![CDATA[GIT is a distributed version control system &#8211; that means it doesn&#8217;t require to have any central repository. It&#8217;s possible to build system by exchanging commits between equal nodes. It&#8217;s convenient, however, to mark one repository as central one. Of course you can change your decision at any time. I&#8217;ll show you how to do [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://git-scm.com/"></a><a href="http://blog.aplikacja.info/wp-content/uploads/2010/08/139.png"><img class="alignright size-full wp-image-1256" title="139" src="http://blog.aplikacja.info/wp-content/uploads/2010/08/139.png" alt="" width="300" height="236" /></a>GIT is a distributed version control system &#8211; that means it doesn&#8217;t require to have any central repository. It&#8217;s possible to build system by exchanging commits between equal nodes. It&#8217;s convenient, however, to <strong>mark one repository as central one</strong>. Of course you can change your decision at any time. I&#8217;ll show you how to do that.</p>
<p><span id="more-1253"></span></p>
<p>If you created your repo copy by &#8220;clone&#8221; operation you will have &#8220;origin&#8221; remote branch defined. This remote can be used to pull/push changes.</p>
<pre>$ git remote -v
origin zeus.aplikacja.info:cust-proj1</pre>
<p>If you decide to change this definition later you can issue the following commands:</p>
<pre>$ git remote rm origin
$ git remote add origin git@github.com:aplikacjainfo/proj1.git
$ sed -i '/\[branch "master"\]/a\\tremote = origin\n\tmerge = refs/heads/master' .git/config</pre>
<p>The last step can be performed by any text editor.</p>
<p>After this change you can <strong>push your commits</strong> to new repository location (origin is selected as default remote branch for master, it&#8217;s configured in .git/config):</p>
<pre>$ git push</pre>
<p>That&#8217;s all. Much simpler than moving Subversion repository.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;title=Switch+%22origin%22+of+your+GIT+repository"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;title=Switch+%22origin%22+of+your+GIT+repository"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;title=Switch+%22origin%22+of+your+GIT+repository"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;headline=Switch+%22origin%22+of+your+GIT+repository"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Switch+%22origin%22+of+your+GIT+repository&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Switch+%22origin%22+of+your+GIT+repository&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Switch+%22origin%22+of+your+GIT+repository&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Switch+%22origin%22+of+your+GIT+repository&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Switch+%22origin%22+of+your+GIT+repository&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;title=Switch+%22origin%22+of+your+GIT+repository&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F08%2Fswitch-origin-of-your-git-repository%2F&amp;title=Switch+%22origin%22+of+your+GIT+repository"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/08/switch-origin-of-your-git-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where&#8217;s JUnit for C++?</title>
		<link>http://blog.aplikacja.info/2010/07/wheres-junit-for-cpp/</link>
		<comments>http://blog.aplikacja.info/2010/07/wheres-junit-for-cpp/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 18:17:19 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1239</guid>
		<description><![CDATA[Recently I started new project targetting STB (set top boxes). STB is a networking device (Ethernet based) that allows you to watch (record in some cases) HD films on your TV screen. I have no TV device in home (who cares TV if Internet is availabe?), but it&#8217;s interesting to see the direction where current [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started <strong>new project targetting STB</strong> (set top boxes). STB is a networking device (Ethernet based) that allows you to watch (record in some cases) HD films on your TV screen. I have no TV device in home (who cares TV if Internet is availabe?), but it&#8217;s interesting to see the direction where current TV devices will go in near future.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/07/stb.jpg"><img class="aligncenter size-full wp-image-1240" title="stb" src="http://blog.aplikacja.info/wp-content/uploads/2010/07/stb.jpg" alt="" width="500" height="225" /></a></p>
<p>Anyway, the most important difference to previous projects is &#8220;new&#8221; language: no more Java, no more Python, it&#8217;s C++. You can find <a href="https://sourceforge.net/projects/dcsim/">few C++ projects</a> I published on SourceForge, but they&#8217;re created &gt;5 years old now, so I can use &#8220;new&#8221; word here <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . The first thought of old Test Driven Design fan when creating development environment was: <strong>whre&#8217;s JUnit for C++?</strong></p>
<h2><strong><span id="more-1239"></span></strong>CppUnit</h2>
<p><a href="http://sourceforge.net/projects/cppunit/">CppUnit</a> is the most known port of Junit to C++ world. It&#8217;s pretty mature, full-featured (am I hearing &#8220;fat&#8221;?) and &#8230; verbose. See the code example:</p>
<pre>// Simplest possible test with CppUnit
#include
class SimplestCase : public CPPUNIT_NS::TestFixture
{
    CPPUNIT_TEST_SUITE( SimplestCase );
    CPPUNIT_TEST( MyTest );
    CPPUNIT_TEST_SUITE_END();
protected:
    void MyTest();
};

CPPUNIT_TEST_SUITE_REGISTRATION( SimplestCase );  

void SimplestCase::MyTest()
{
    float fnum = 2.00001f;
    CPPUNIT_ASSERT_DOUBLES_EQUAL( fnum, 2.0f, 0.0005 );
}
</pre>
<p>It&#8217;s very verbose, indeed. Initially, I wanted to go in that direction but noticed much simpler syntax for declaring tests:</p>
<pre>#include "lib/TestHarness.h"  

TEST (Whatever,MyTest)
{
    float fnum = 2.00001f;
    CHECK_DOUBLES_EQUAL (fnum, 2.0f);
}
</pre>
<p>What was the library?</p>
<h2>CppUnitLite</h2>
<p>CppUnitLite was written by <a onclick="javascript:_gaq.push(['_trackEvent','outbound-article','www.objectmentor.com']);" href="http://www.objectmentor.com/aboutUs/bios/Michael%20Feathers">Michael Feathers</a>, the original author of CppUnit, who decided to leave CppUnit and <strong>write something smaller / lighter</strong> (do you know this feeling <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). That&#8217;s why <a href="http://c2.com/cgi/wiki?CppUnitLite">CppUnitLite</a> was born.</p>
<p>CppUnit <strong>automatically discovers test cases</strong> based on TEST macro and organizes those tests into test suites. Small original code modications allows us to run:</p>
<ul>
<li>single test</li>
<li>single test suite</li>
<li>any combination of above</li>
</ul>
<p>I see <a href="http://code.google.com/p/googletest/">GoogleTest</a> uses <strong>similar syntax for tests</strong> declarations. We will switch in the future if CppUnitLite features become too small for our requirements. At this very moment all needs are fulfilled:</p>
<ul>
<li>simple, easy to use syntax</li>
<li>many assertions for comparing results</li>
<li>light (important for embedded device)</li>
</ul>
<p>Do you know of another C++ library that is worth considering?</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;title=Where%27s+JUnit+for+C%2B%2B%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;title=Where%27s+JUnit+for+C%2B%2B%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;title=Where%27s+JUnit+for+C%2B%2B%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;headline=Where%27s+JUnit+for+C%2B%2B%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Where%27s+JUnit+for+C%2B%2B%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Where%27s+JUnit+for+C%2B%2B%3F&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Where%27s+JUnit+for+C%2B%2B%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Where%27s+JUnit+for+C%2B%2B%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Where%27s+JUnit+for+C%2B%2B%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;title=Where%27s+JUnit+for+C%2B%2B%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwheres-junit-for-cpp%2F&amp;title=Where%27s+JUnit+for+C%2B%2B%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/07/wheres-junit-for-cpp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writable, shared directory structure under Unix/Linux</title>
		<link>http://blog.aplikacja.info/2010/07/writable-shared-directory-structure-under-unixlinux/</link>
		<comments>http://blog.aplikacja.info/2010/07/writable-shared-directory-structure-under-unixlinux/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 09:13:27 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1232</guid>
		<description><![CDATA[Sometimes you need to make some directories available (R/W mode) to a group of developers on a Linux / Unix server. Using shell tools make this task very easy.
First, ensure all files group are switched to desired group:
find . ! -group group1 -exec chgrp group1 '{}' \;
Then +s (sticky) bit must be attached to directories [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you need to make some <strong>directories available (R/W mode)</strong> to a group of developers on a Linux / Unix server. Using shell tools make this task very easy.</p>
<p>First, ensure all files group are <strong>switched to desired group</strong>:</p>
<pre>find . ! -group group1 -exec chgrp group1 '{}' \;</pre>
<p>Then +s (sticky) bit must be attached to directories to ensure <strong>group will be preserved</strong> in newly created directories:</p>
<pre>find . -type d ! -perm -g=s -exec chmod g+s '{}' \;</pre>
<p>Then <strong>writeability</strong> for the group should be set:</p>
<pre>find . -type d ! -perm -g=w -exec chmod g+w '{}' \;</pre>
<p>And finally some <strong>users must be added</strong> to the group:</p>
<pre>adduser user1 group1</pre>
<p>Additionally you have to set default umask to 0002 (only o+w filtered out). It&#8217;s done by installing libpam-umask and adding to /etc/pam.d/common-session:</p>
<pre>session    optional     pam_umask.so umask=002</pre>
<p>That&#8217;s all.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;title=Writable%2C+shared+directory+structure+under+Unix%2FLinux"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;title=Writable%2C+shared+directory+structure+under+Unix%2FLinux"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;title=Writable%2C+shared+directory+structure+under+Unix%2FLinux"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;headline=Writable%2C+shared+directory+structure+under+Unix%2FLinux"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;title=Writable%2C+shared+directory+structure+under+Unix%2FLinux&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F07%2Fwritable-shared-directory-structure-under-unixlinux%2F&amp;title=Writable%2C+shared+directory+structure+under+Unix%2FLinux"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/07/writable-shared-directory-structure-under-unixlinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Error: 17006, SQLState: null Invalid column name in Hibernate</title>
		<link>http://blog.aplikacja.info/2010/06/sql-error-17006-sqlstate-null-invalid-column-name-in-hibernate/</link>
		<comments>http://blog.aplikacja.info/2010/06/sql-error-17006-sqlstate-null-invalid-column-name-in-hibernate/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 10:38:11 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1223</guid>
		<description><![CDATA[Recently I&#8217;ve got the following error during SQL named query execution:
SQL Error: 17006, SQLState: null Invalid column name
In order to track the problem down I enabled SQL logging and collected SQL query issued, then run it under SQL monitor and &#8230; it was working without error! I was surprised.
In order to debug what&#8217;s going on [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve got the following error during <strong>SQL named query</strong> execution:</p>
<pre>SQL Error: 17006, SQLState: null Invalid column name</pre>
<p>In order to track the problem down I enabled SQL logging and collected SQL query issued, then run it under SQL monitor and &#8230; it <strong>was working without error</strong>! I was surprised.</p>
<p>In order to debug what&#8217;s going on I enabled <strong>detailed logging in Hibernate</strong>. What was happened then?</p>
<pre>[INFO] could not read column value from result set: entityKey215_0_; Invalid column name</pre>
<p>This message showed me that the problem was not related to generated SQL query but to <strong>column names expected by Hibernate</strong>. Generated recordset didn&#8217;t has entityKey215_0_ column. I added:</p>
<pre>entityKey AS {list.entityKey}</pre>
<p>to named SQL query and error dissapeared.</p>
<p>This error is not-very-obvious kind of error because <strong>Oracle hides column / table names in error messages</strong> returned. Why? I don&#8217;t get this cryptic error messages idea. In order to track an error under Oracle I had to enable verbose logging (error message standalone din&#8217;t give anything useful). Much simpler database MySQL has better error reporting than &#8220;fat&#8221; Oracle.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;headline=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsql-error-17006-sqlstate-null-invalid-column-name-in-hibernate%2F&amp;title=SQL+Error%3A+17006%2C+SQLState%3A+null+Invalid+column+name+in+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/06/sql-error-17006-sqlstate-null-invalid-column-name-in-hibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ConfigurationException: XML-22101: (Fatal Error) DOMSource node as this type not supported</title>
		<link>http://blog.aplikacja.info/2010/06/configurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported/</link>
		<comments>http://blog.aplikacja.info/2010/06/configurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 07:54:31 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1219</guid>
		<description><![CDATA[When you setup your project with commons-configuration library plugged in sometimes you can get very misleading error:
ConfigurationException: XML-22101: (Fatal Error) DOMSource node as this type not supported
This error may be caused by missing XML library bindings. In order to fix that error you have to configure properly some service providers (point JVM to correct XML [...]]]></description>
			<content:encoded><![CDATA[<p>When you setup your project with commons-configuration library plugged in sometimes you can get very misleading error:</p>
<pre>ConfigurationException: XML-22101: (Fatal Error) DOMSource node as this type not supported</pre>
<p>This error may be caused by <strong>missing XML library bindings</strong>. In order to fix that error you have to configure properly <a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html#Service%20Provider">some service providers</a> (point JVM to correct XML parsing/transformation implementations).</p>
<p><span id="more-1219"></span></p>
<p>How to do that? You have to create the following <strong>directory structure</strong> somewhere under classpath:</p>
<ul>
<li>META-INF</li>
<li>META-INF/services</li>
<li>META-INF/services/interface_name_files</li>
</ul>
<p>Then inside &#8220;services&#8221; directory place filenames named after interfaces and filled with full class name of an implementation, for example (Xerces + Xalan plugged in):</p>
<ul>
<li>src/META-INF/services/javax.xml.parsers.DocumentBuilderFactory
<ul>
<li>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</li>
</ul>
</li>
<li>src/META-INF/services/javax.xml.parsers.SAXParserFactory
<ul>
<li>org.apache.xerces.jaxp.SAXParserFactoryImpl</li>
</ul>
</li>
<li>src/META-INF/services/javax.xml.transform.TransformerFactory
<ul>
<li>org.apache.xalan.processor.TransformerFactoryImpl</li>
</ul>
</li>
</ul>
<p>After this change proper XML implementation should be used (if the <strong>jar is present on classpatch</strong> of course).</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;headline=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fconfigurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported%2F&amp;title=ConfigurationException%3A+XML-22101%3A+%28Fatal+Error%29+DOMSource+node+as+this+type+not+supported"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/06/configurationexception-xml-22101-fatal-error-domsource-node-as-this-type-not-supported/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coloured GIT output</title>
		<link>http://blog.aplikacja.info/2010/06/coloured-git-output/</link>
		<comments>http://blog.aplikacja.info/2010/06/coloured-git-output/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 06:33:00 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1206</guid>
		<description><![CDATA[Coloured git output on console is a very helpful feature. It was enabled by default on git interface cogito. I liked it, but had to switch to raw git few years ago (cogito is deprecated now).
Fortunately current version of GIT supports that nice feature. It can be enabled with few settings in ~/.gitconfig file:
[diff]
color = [...]]]></description>
			<content:encoded><![CDATA[<p>Coloured <a href="http://git-scm.com/">git</a> output on console is a very helpful feature. It was enabled by default on git interface <a href="http://git.or.cz/cogito/">cogito</a>. I liked it, but had to switch to raw git few years ago (cogito is deprecated now).</p>
<p>Fortunately current version of GIT supports that nice <a href="http://jblevins.org/log/git-colors">feature</a>. It can be enabled with few settings in ~/.gitconfig file:</p>
<pre>[diff]
color = true

[pager]
color = true

[status]
color = true
</pre>
<p>Additionally pager used (less in my case) should support ANSI colors (~/.bash_profile):</p>
<pre>export LESS="-R"</pre>
<p>And now diffs are rendered using colors that improve readability (anyone who doesn&#8217;t review changesets before commit? <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). Now diffs look much better on a X terminal:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/06/132.png"><img class="aligncenter size-full wp-image-1207" title="132" src="http://blog.aplikacja.info/wp-content/uploads/2010/06/132.png" alt="" width="400" height="315" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;title=Coloured+GIT+output"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;title=Coloured+GIT+output"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;title=Coloured+GIT+output"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;headline=Coloured+GIT+output"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Coloured+GIT+output&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Coloured+GIT+output&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Coloured+GIT+output&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Coloured+GIT+output&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Coloured+GIT+output&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;title=Coloured+GIT+output&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fcoloured-git-output%2F&amp;title=Coloured+GIT+output"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/06/coloured-git-output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion: How To Revert Single Commit</title>
		<link>http://blog.aplikacja.info/2010/06/subversion-how-to-revert-single-commit/</link>
		<comments>http://blog.aplikacja.info/2010/06/subversion-how-to-revert-single-commit/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 12:35:18 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1187</guid>
		<description><![CDATA[Let&#8217;s say you tracked someone broke HEAD of trunk and you want to reverse that single commit from main branch. Subversion makes very handy syntax for reverse merges:
svn merge -c -19203 https://REPO_URL
In example above you do reverse merge of 19203 revision (note &#8220;-&#8221; sign before revision number). After that merge:

Inspect if workspace compiles without errors
If [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you tracked someone broke HEAD of trunk and you want to <strong>reverse that single commit</strong> from main branch. Subversion makes very handy syntax for reverse merges:</p>
<pre>svn merge -c -19203 https://REPO_URL</pre>
<p>In example above you do <strong>reverse merge</strong> of 19203 revision (note &#8220;-&#8221; sign before revision number). After that merge:</p>
<ul>
<li>Inspect if workspace compiles without errors</li>
<li>If it&#8217;s OK: commit local changeset</li>
<li>Notify 19203 committer about the change</li>
</ul>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/06/subversion.png"><img class="aligncenter size-full wp-image-1191" title="subversion" src="http://blog.aplikacja.info/wp-content/uploads/2010/06/subversion.png" alt="" width="468" height="64" /></a></p>
<p>In order to <strong>fix broken commit</strong> original author should do the opposite:</p>
<pre>svn merge -c 19203 https://REPO_URL
</pre>
<p>(note there&#8217;s no &#8220;-&#8221; before revision number). Then:</p>
<ul>
<li>Correct changeset and test if workspace is not broken</li>
<li>If it&#8217;s OK: commit local changeset (it will be nice to show original revision number in a comment)</li>
</ul>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;title=Subversion%3A+How+To+Revert+Single+Commit"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;title=Subversion%3A+How+To+Revert+Single+Commit"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;title=Subversion%3A+How+To+Revert+Single+Commit"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;headline=Subversion%3A+How+To+Revert+Single+Commit"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Subversion%3A+How+To+Revert+Single+Commit&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Subversion%3A+How+To+Revert+Single+Commit&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Subversion%3A+How+To+Revert+Single+Commit&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Subversion%3A+How+To+Revert+Single+Commit&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Subversion%3A+How+To+Revert+Single+Commit&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;title=Subversion%3A+How+To+Revert+Single+Commit&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fsubversion-how-to-revert-single-commit%2F&amp;title=Subversion%3A+How+To+Revert+Single+Commit"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/06/subversion-how-to-revert-single-commit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>flaker.pl nie działa / 504 Gateway Time-out</title>
		<link>http://blog.aplikacja.info/2010/06/flaker-pl-nie-dziala-504-gateway-time-out/</link>
		<comments>http://blog.aplikacja.info/2010/06/flaker-pl-nie-dziala-504-gateway-time-out/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 05:11:34 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[pl]]></category>
		<category><![CDATA[s-u]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1179</guid>
		<description><![CDATA[Flaker to polski serwis mikroblogowy wzorowany na Twitterze. Od kilku dni obserwuję okresową (kilka godzin) niedostępność serwisu. Pojawia się komunikat:
504 Gateway Time-out
nginx/0.7.64
Oto wynik monitora realizowanego przez site-uptime.net:

Jak widać serwis boryka się z problemem wydajności podobnie jak kilka miesięcy temu Twitter. Czyżby znowu &#8220;popularność zaskoczyła drogowców&#8221;   ?
Aktualizacja (2010-06-13). Sytuacja nie wygląda najlepiej. Od tygodnia [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flaker.pl">Flaker</a> to polski serwis mikroblogowy wzorowany na Twitterze. Od kilku dni obserwuję okresową (kilka godzin) <strong>niedostępność serwisu</strong>. Pojawia się komunikat:</p>
<p style="text-align: center;">504 Gateway Time-out<br />
nginx/0.7.64</p>
<p style="text-align: left;">Oto wynik <a href="http://site-uptime.net/su.cgi/en/report?publicKey=74fkyzhvv7kjklxaccbn44yuvu1jswc6">monitora</a> realizowanego przez <a href="http://site-uptime.net">site-uptime.net</a>:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/06/flaker.png"><img class="aligncenter size-full wp-image-1180" title="flaker" src="http://blog.aplikacja.info/wp-content/uploads/2010/06/flaker.png" alt="" width="418" height="248" /></a></p>
<p>Jak widać serwis boryka się z <strong>problemem wydajności</strong> podobnie jak kilka miesięcy temu <a href="http://blog.aplikacja.info/2010/02/twitter-is-over-capacity-502-bad-gateway/">Twitter</a>. Czyżby znowu &#8220;popularność zaskoczyła drogowców&#8221; <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ?</p>
<p><strong>Aktualizacja (2010-06-13)</strong>. Sytuacja nie wygląda najlepiej. Od tygodnia ciągłe pady i uptime 82%:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/06/flaker2.png"><img class="aligncenter size-full wp-image-1203" title="flaker2" src="http://blog.aplikacja.info/wp-content/uploads/2010/06/flaker2.png" alt="" width="418" height="248" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;headline=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F06%2Fflaker-pl-nie-dziala-504-gateway-time-out%2F&amp;title=flaker.pl+nie+dzia%C5%82a+%2F+504+Gateway+Time-out"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/06/flaker-pl-nie-dziala-504-gateway-time-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commons logging configuration under WebSphere</title>
		<link>http://blog.aplikacja.info/2010/05/commons-logging-configuration-under-websphere/</link>
		<comments>http://blog.aplikacja.info/2010/05/commons-logging-configuration-under-websphere/#comments</comments>
		<pubDate>Thu, 27 May 2010 10:09:27 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1166</guid>
		<description><![CDATA[Sometimes you want to customize logging level for given package in your application (to see tracing details for example). If you&#8217;re using commons-logging library the configuration file is called &#8220;commons-logging.properties&#8221; and it should be places somewhere on classpath.
org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
priority=1
Then we can configure SimpleLog back-end just declared in simplelog.properties:
org.apache.commons.logging.simplelog.defaultlog=warn
org.apache.commons.logging.simplelog.log.com.mycompany.package=debug
You place those two files on classpath, redeploy application [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you want to <strong>customize logging level</strong> for given package in your application (to see tracing details for example). If you&#8217;re using commons-logging library the configuration file is called &#8220;commons-logging.properties&#8221; and it should be places somewhere on classpath.</p>
<pre>org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
priority=1</pre>
<p>Then we can <strong>configure SimpleLog back-end</strong> just declared in simplelog.properties:</p>
<pre>org.apache.commons.logging.simplelog.defaultlog=warn
org.apache.commons.logging.simplelog.log.com.mycompany.package=debug</pre>
<p>You place those two files on classpath, redeploy application and &#8230; NOTHING HAPPENS. Those files aren&#8217;t visible!</p>
<p><span id="more-1166"></span></p>
<p>Why is it happening? Here&#8217;s the explanation:</p>
<ul>
<li>Default WebSphere class-loader is defined as <strong>PARENT_FIRST</strong>, that means WebSphere classpath is being searched in first place</li>
<li>WebSphere ships with commons-logging.properties that <strong>selects JDK 1.4</strong> logging back-end</li>
</ul>
<p>That&#8217;s why your commons logging configuration is not visible.</p>
<p>How to fix that: place files inside /opt/IBM/WID61/pf/wps/properties directory (it&#8217;s the first entry on the classpath). Then those files will become visible and log level customisation is possible then.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;title=Commons+logging+configuration+under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;title=Commons+logging+configuration+under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;title=Commons+logging+configuration+under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;headline=Commons+logging+configuration+under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Commons+logging+configuration+under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Commons+logging+configuration+under+WebSphere&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Commons+logging+configuration+under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Commons+logging+configuration+under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Commons+logging+configuration+under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;title=Commons+logging+configuration+under+WebSphere&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-configuration-under-websphere%2F&amp;title=Commons+logging+configuration+under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/commons-logging-configuration-under-websphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Błąd w systemie transakcyjnym mBanku</title>
		<link>http://blog.aplikacja.info/2010/05/blad-w-systemie-transakcyjnym-mbanku/</link>
		<comments>http://blog.aplikacja.info/2010/05/blad-w-systemie-transakcyjnym-mbanku/#comments</comments>
		<pubDate>Tue, 25 May 2010 22:33:13 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[pl]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1152</guid>
		<description><![CDATA[Kiedy człowiek dorasta to zwykle zakłada rodzinę i zaciąga kredyt na mieszkanie żeby mieć gdzie tę rodzinę pomieścić. Konieczność terminowego spłacania swoich zobowiązań powoduje, że warto kontrolować poziom wydatków względem przychodów na koncie w banku by uniknąć przykrych niespodzianek (patrz: przypadek Grecji). Narzędzia raportujące wbudowane w system transakcyjny mBanku ułatwiają taką operację. Przynajmniej ułatwiały &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Kiedy człowiek dorasta to zwykle zakłada rodzinę i zaciąga kredyt na mieszkanie żeby mieć gdzie tę rodzinę pomieścić. Konieczność terminowego spłacania swoich zobowiązań powoduje, że warto kontrolować poziom wydatków względem przychodów na koncie w banku by uniknąć przykrych niespodzianek (patrz: przypadek Grecji). Narzędzia raportujące wbudowane w system transakcyjny mBanku ułatwiają taką operację. <strong>Przynajmniej ułatwiały &#8211; do czasu ostatniej aktualizacji oprogramowania.</strong></p>
<p><strong><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/mbank.jpeg"><img class="aligncenter size-full wp-image-1162" title="mbank" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/mbank.jpeg" alt="" width="137" height="64" /></a><br />
</strong></p>
<p><span id="more-1152"></span></p>
<p>Przelewy wychodzące zwykle związane są z kosztami stałymi które ciężko jest zoptymalizować (kredyt, czynsz, media). Kiedy trzeba kontrolować koszty warto więc spojrzeć na <strong>historię operacji na karcie</strong>. Możemy (czasami z zaskoczeniem) zobaczyć ile wydaliśmy np. w ciągu ostatniego miesiąca. Ustawiamy więc filtrowanie na 1 miesiąc:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/121.png"><img class="aligncenter size-full wp-image-1155" title="121" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/121.png" alt="" width="360" height="443" /></a>i oglądamy wyniki:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/122.png"><img class="aligncenter size-full wp-image-1156" title="122" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/122.png" alt="" width="776" height="198" /></a></p>
<p>Wyniki wyglądają sensownie, więc może teraz sprawdzić <strong>historię za ostatnie dwa miesiące</strong>?</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/124.png"><img class="aligncenter size-full wp-image-1158" title="124" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/124.png" alt="" width="354" height="443" /></a></p>
<p>W podsumowaniu operacji czeka nas niespodzianka:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/125.png"><img class="aligncenter size-full wp-image-1159" title="125" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/125.png" alt="" width="774" height="201" /></a></p>
<p>Dane wyglądają nieco, hm, <strong>nierealistycznie</strong>. Analizując szczegółową listę operacji widać wyraźnie, że podsumowanie nie odzwierciedla sumy z listy. Obroty na rachunku są źle sumowane.</p>
<p>Kiedy ten błąd jest widoczny? Muszą być spełnione dwa warunki:</p>
<ul>
<li>lista operacji na koncie nie mieści się na jednej stronie wyników i aktywuje się stronicowanie wyników</li>
<li>dla danego konta jest aktywny kredyt hipoteczny z mechanizmem bilansującym (tzw. mPlan)</li>
</ul>
<p>W przypadku aktywowania się stronicowania <strong>podsumowanie gubi informację o wybranym rodzaju operacji</strong>.</p>
<p>Dobry proces testowania powinien uwzględnić <strong>przypadki szczególne</strong> (aktywny mPlan + stronicowana lista wyników). Z tego co widzę taką kombinację pominięto przy wprowadzaniu nowej wersji oprogramowania w mBanku. Problem zgłosiłem, zobaczymy ile czasu Bank potrzebuje na reakcję w przypadku takiego (dość prostego) błędu. Mam nadzieję, że procedury wpływające bezpośrednio na stan konta nie mają tego typu defektów <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;headline=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fblad-w-systemie-transakcyjnym-mbanku%2F&amp;title=B%C5%82%C4%85d+w+systemie+transakcyjnym+mBanku"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/blad-w-systemie-transakcyjnym-mbanku/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySpace vs Facebook vs Twitter uptime comparision</title>
		<link>http://blog.aplikacja.info/2010/05/myspace-vs-facebook-vs-twitter-uptime-comparision/</link>
		<comments>http://blog.aplikacja.info/2010/05/myspace-vs-facebook-vs-twitter-uptime-comparision/#comments</comments>
		<pubDate>Thu, 20 May 2010 20:47:22 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[s-u]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1139</guid>
		<description><![CDATA[Most of us are using Web2.0 sites but massive user base that logins every second is a big challenge to system performance. Let&#8217;s see how engineers working for MySpace, Facebook and Twitter are doing their job.
Note: all uptime buttons and images below are generated in real-time, you can click on images / baners to see [...]]]></description>
			<content:encoded><![CDATA[<p>Most of us are using Web2.0 sites but massive user base that logins every second is a big challenge to <strong>system performance</strong>. Let&#8217;s see how engineers working for MySpace, Facebook and Twitter are doing their job.</p>
<p>Note: all uptime buttons and images below are generated in real-time, you can <strong>click on images / baners to see reports with details</strong> directly from <em>site-uptime.net</em>.</p>
<h2>MySpace</h2>
<div class="wp-caption aligncenter" style="width: 428px"><a href="http://site-uptime.net/su.cgi/en/report?publicKey=gmz3vl92xvsznq6huv052qrmseiur1a2"><img title="MySpace uptime" src="http://site-uptime.net/su.cgi/en/main?showGraph:m=&amp;publicKey=gmz3vl92xvsznq6huv052qrmseiur1a2" alt="MySpace uptime" width="418" height="248" align="center" /></a><p class="wp-caption-text">MySpace uptime</p></div>
<p><a href="http://site-uptime.net/su.cgi/en/report?publicKey=gmz3vl92xvsznq6huv052qrmseiur1a2"><img class="aligncenter" src="http://site-uptime.net/su.cgi/graph?publicKey=gmz3vl92xvsznq6huv052qrmseiur1a2" alt="" width="100" height="15" align="center" /></a><span id="more-1139"></span></p>
<h2>Facebook</h2>
<div class="wp-caption aligncenter" style="width: 428px"><a href="http://site-uptime.net/su.cgi/en/report?publicKey=ttthqb5p6r3z2n6jm99oiil32i81aum7"><img title="MySpace uptime" src="http://site-uptime.net/su.cgi/en/main?showGraph:m=&amp;publicKey=ttthqb5p6r3z2n6jm99oiil32i81aum7" alt="MySpace uptime" width="418" height="248" align="center" /></a><p class="wp-caption-text">Facebook uptime</p></div>
<p style="text-align: center;"><a href="http://site-uptime.net/su.cgi/en/report?publicKey=ttthqb5p6r3z2n6jm99oiil32i81aum7"><img class="aligncenter" src="http://site-uptime.net/su.cgi/graph?publicKey=ttthqb5p6r3z2n6jm99oiil32i81aum7" alt="" width="100" height="15" align="center" /></a></p>
<h2>Twitter</h2>
<div class="wp-caption aligncenter" style="width: 428px"><a href="http://site-uptime.net/su.cgi/en/report?publicKey=emb8lho8jf9tbls6c8c7aw5jhah5dojm"><img title="Twitter uptime" src="http://site-uptime.net/su.cgi/en/main?showGraph:m=&amp;publicKey=emb8lho8jf9tbls6c8c7aw5jhah5dojm" alt="MySpace uptime" width="418" height="248" align="center" /></a><p class="wp-caption-text">Twitter uptime</p></div>
<p style="text-align: center;"><a href="http://site-uptime.net/su.cgi/en/report?publicKey=emb8lho8jf9tbls6c8c7aw5jhah5dojm"><img class="aligncenter" src="http://site-uptime.net/su.cgi/graph?publicKey=emb8lho8jf9tbls6c8c7aw5jhah5dojm" alt="" width="100" height="15" align="center" /></a></p>
<p style="text-align: left;">As you can see the &#8220;winner&#8221; in this category is: <strong>Twitter</strong>! <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2 style="text-align: left;">Site-uptime.net</h2>
<p><a title="Website Monitoring" href="http://site-uptime.net">site-uptime.net</a> is a service that <strong>continuously monitors websites</strong> and allows to configure email / SMS notifications on downtime. May be helpful for professionals who care about accessibility and uptime of their services.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;headline=MySpace+vs+Facebook+vs+Twitter+uptime+comparision"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fmyspace-vs-facebook-vs-twitter-uptime-comparision%2F&amp;title=MySpace+vs+Facebook+vs+Twitter+uptime+comparision"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/myspace-vs-facebook-vs-twitter-uptime-comparision/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Watch your HTTPD logs</title>
		<link>http://blog.aplikacja.info/2010/05/watch-your-httpd-logs/</link>
		<comments>http://blog.aplikacja.info/2010/05/watch-your-httpd-logs/#comments</comments>
		<pubDate>Thu, 20 May 2010 06:30:19 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[adwords]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[logs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1128</guid>
		<description><![CDATA[Recently I observed that AdWords-generated traffic dissapeared from Analytics panel. I thought: WTH?
I checked the logs and saw that URL called by AdWords:
http://my-site.com/?gclid=342343445345....
Generated 403 (Forbidden) server response. That was caused by recent change in Lighttpd filtering rules. I was paying for AdWords traffic but customer hit 403 error page. Ops!
In order to easily spot such [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/watch.jpeg"><img align="right" class="alignright size-full wp-image-1133" title="watch" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/watch.jpeg" alt="" width="300" height="208" /></a>Recently I observed that <strong>AdWords-generated traffic dissapeared from Analytics</strong> panel. I thought: WTH?</p>
<p>I checked the logs and saw that URL called by AdWords:</p>
<pre>http://my-site.com/?gclid=342343445345....</pre>
<p>Generated 403 (Forbidden) server response. That was caused by recent change in Lighttpd filtering rules. I was paying for AdWords traffic but <strong>customer hit 403 error page</strong>. Ops!</p>
<p>In order to easily spot such problems in future I created the following scanner to easily find <strong>all error server responses</strong>.</p>
<pre>awk '$9&gt;=400' /var/log/lighttpd/access.log | less</pre>
<p>If you are boring of 404 errors you can <strong>filter them out</strong> as well (leaving only 403 / 500 errors for investigation):</p>
<pre>awk '$9&gt;=400 &amp;&amp; $9 != 404' /var/log/lighttpd/access.log | less</pre>
<p>I discovered that the following URLs were inaccessible:</p>
<ul>
<li> /robots.txt (exclusion rules for web crawlers)</li>
<li> /favicon.ico (icon used by web browsers)</li>
</ul>
<p>Next step could be <strong>automation of this check</strong> (cron job that will send an alert if errant responses count is higher than N). It&#8217;s left as exercise for the reader.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;title=Watch+your+HTTPD+logs"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;title=Watch+your+HTTPD+logs"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;title=Watch+your+HTTPD+logs"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;headline=Watch+your+HTTPD+logs"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Watch+your+HTTPD+logs&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Watch+your+HTTPD+logs&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Watch+your+HTTPD+logs&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Watch+your+HTTPD+logs&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Watch+your+HTTPD+logs&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;title=Watch+your+HTTPD+logs&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fwatch-your-httpd-logs%2F&amp;title=Watch+your+HTTPD+logs"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/watch-your-httpd-logs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom CacheProvider for Hibernate based on Websphere DistributedMap</title>
		<link>http://blog.aplikacja.info/2010/05/custom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap/</link>
		<comments>http://blog.aplikacja.info/2010/05/custom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:47:16 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1109</guid>
		<description><![CDATA[Hibernate is a library that maps database tables to Java objects. Is performance problems arise it&#8217;s very easy to add database caching for application using Hibernate (just few options in config file). Hibernate is shipped with EHCache, default cache implementation. It works well and is easy to setup.
Sometimes you have to use another caching library [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/119.png"><img class="alignright size-full wp-image-1120" title="119" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/119.png" alt="" width="400" height="258" /></a>Hibernate is a library that maps database tables to Java objects. Is performance problems arise it&#8217;s very easy to add database caching for application using Hibernate (just few options in config file). Hibernate is shipped with EHCache, default cache implementation. It works well and is easy to setup.</p>
<p>Sometimes you have to use another <strong>caching library that has no direct support for Hibernate</strong>. Here the Hibernate API comes into play. I&#8217;ll show you how to plug <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//index.jsp?topic=/com.ibm.wasee.doc/info/ee/ae/tdyn_distmap.html">Websphere&#8217;s DistributedMap</a> into Hibernate.</p>
<p><span id="more-1109"></span></p>
<p>First: you have to map get/put requests into desired API. org.hibernate.cache.Cache is an interface that must be subclassed for this task. This class instance is created by Hibernate for every entity that will be cached (distinguished by regionName).</p>
<pre>public class WebsphereCacheImpl implements Cache {
    private DistributedMap map;
    private String regionName;
    public WebsphereCacheImpl(DistributedMap map, String regionName) {
        this.map = map;
        this.regionName = regionName;
    }
    public void clear() throws CacheException {
        map.clear();
    }
    public Object get(Object key) throws CacheException {
        return map.get(getMapKey(key));
    }
    public String getRegionName() {
        return regionName;
    }
    public void put(Object key, Object value) throws CacheException {
        map.put(getMapKey(key), value);
    }
    public Object read(Object key) throws CacheException {
        return map.get(getMapKey(key));
    }
    public void remove(Object key) throws CacheException {
        map.remove(getMapKey(key));
    }
    public void update(Object key, Object value) throws CacheException {
    map.put(getMapKey(key), value);
    }
    private String getMapKey(Object key) {
        return regionName + "." + key;
    }
    (...)
}</pre>
<p>Then you have to prepare factory for such obejcts:</p>
<pre>public class WebsphereCacheProviderImpl implements CacheProvider {

    private DistributedMap distributedMap;

    public WebsphereCacheProviderImpl() throws NamingException {
        InitialContext ic = new InitialContext();
        distributedMap = (DistributedMap) ic.lookup("services/cache/cache1");
    }
    public Cache buildCache(String regionName, Properties arg1) throws CacheException {
        return new WebsphereCacheImpl(distributedMap, regionName);
    }
    public boolean isMinimalPutsEnabledByDefault() {
        return false;
    }
    public long nextTimestamp() {
        return new Date().getTime();
    }
    public void start(Properties arg0) throws CacheException {
    }
    public void stop() {
    }
}</pre>
<p>Then new factory class must be registered in Hibernate configuration:</p>
<pre>&lt;property name="hibernate.cache.use_second_level_cache"&gt;true&lt;/property&gt;
&lt;property name="hibernate.cache.use_query_cache"&gt;true&lt;/property&gt;
&lt;property name="cache.provider_class"&gt;com.company.project.cache.WebsphereCacheProviderImpl&lt;/property&gt;</pre>
<p>And voila!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;headline=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcustom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap%2F&amp;title=Custom+CacheProvider+for+Hibernate+based+on+Websphere+DistributedMap"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/custom-cacheprovider-for-hibernate-based-on-websphere-ditributedmap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Lean Times Require Lean Thinking&#8221; by ThoughtWorks</title>
		<link>http://blog.aplikacja.info/2010/05/lean-times-require-lean-thinking-by-thoughtworks/</link>
		<comments>http://blog.aplikacja.info/2010/05/lean-times-require-lean-thinking-by-thoughtworks/#comments</comments>
		<pubDate>Wed, 19 May 2010 09:00:06 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1102</guid>
		<description><![CDATA[


]]></description>
			<content:encoded><![CDATA[<p><center>
<div id="__ss_1224943" style="width: 425px;"><object id="__sse1224943" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=leantimesrequireleanthinking-v7-090331003458-phpapp01&amp;stripped_title=lean-times-require-lean-thinking" /><param name="name" value="__sse1224943" /><param name="allowfullscreen" value="true" /><embed id="__sse1224943" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=leantimesrequireleanthinking-v7-090331003458-phpapp01&amp;stripped_title=lean-times-require-lean-thinking" name="__sse1224943" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p></center></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;headline=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Flean-times-require-lean-thinking-by-thoughtworks%2F&amp;title=%22Lean+Times+Require+Lean+Thinking%22+by+ThoughtWorks"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/lean-times-require-lean-thinking-by-thoughtworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Static Typing the Root of All Evil?</title>
		<link>http://blog.aplikacja.info/2010/05/is-static-typing-the-root-of-all-evil/</link>
		<comments>http://blog.aplikacja.info/2010/05/is-static-typing-the-root-of-all-evil/#comments</comments>
		<pubDate>Sun, 16 May 2010 12:54:46 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1093</guid>
		<description><![CDATA[Anders Janmyr has written recently an interesting article why he hates static typing:
Donald Knuth wrote in his famous paper Structured Programming with go to Statements (PDF)
We should forget about small efficiencies, say about 97% of the time: pre-mature optimization is the root of all evil
Since compilation is premature optimization, it is therefore, the root of [...]]]></description>
			<content:encoded><![CDATA[<p>Anders Janmyr has written recently an interesting article <a href="http://blog.jayway.com/2010/04/14/static-typing-is-the-root-of-all-evil/">why he hates static typing</a>:</p>
<blockquote><p>Donald Knuth wrote in his famous paper <a href="http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf">Structured Programming with go to Statements (PDF)</a></p>
<p style="padding-left: 30px;">We should forget about small efficiencies, say about 97% of the time: pre-mature optimization is the root of all evil</p>
<p>Since compilation is premature optimization, it is therefore, the root of all evil. Simple!</p></blockquote>
<p>Pretty &#8220;smart&#8221; reasoning but <strong>stupid</strong>, IMHO.</p>
<p><span id="more-1093"></span></p>
<p>He mentioned: &#8220;Every time <strong>I build my code</strong>, my entire code base is type-checked (&#8230;) I only care about the method and class that I am currently working on&#8221; &#8211; yeah, local code change may introduce errors in unexpected parts of a system. I would even use <a href="http://findbugs.sourceforge.net/">FindBugs</a> if it will improve code quality and slow down total build time. Why? Because I think it&#8217;s better to allow compiler/lint-tool to control correctness during development process to find most errors as early as possible.</p>
<p>Janmyr assumes the only application of static typing for release preparation (<strong>production mode</strong>) is better software optimisation. Compiled languages are more efficient than interpreted because many type checks was performed during compile time time and they can be removed from run-time.</p>
<p>I do believe <strong>dynamically-typed languages are faster for rapid development</strong> (I do love Python, BTW), but there&#8217;s a hidden cost here. In order to make your code maintainable you have to prepare sufficient level of unit test coverage (I&#8217;m using 80% as minumul level for projects in dynamic languages). That&#8217;s why i&#8217;m introducing some kind of static typing by:</p>
<ul>
<li>lint-like tools for python: <a href="http://www.logilab.org/857">pylint</a>, <a href="http://pychecker.sourceforge.net/">pychecker</a></li>
<li>project-specific <a href="http://blog.aplikacja.info/2010/02/static-verification-for-j2ee-based-software/">static analysers</a></li>
</ul>
<p>I do agree, however, that modern languages are <strong>loosing static type-safety</strong> by moving configuration outside Java code (XML files, properties, Json) and coding logic in external dynamic sub-languages (JSP). Java gets more type safety from 1.5+ language contructs but most frameworks go in opposite direction.</p>
<p>Isn&#8217;t <strong>Dynamic Typing</strong> the Root of All Evil then?</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/05/duck.jpg"><img class="aligncenter size-full wp-image-1095" title="duck" src="http://blog.aplikacja.info/wp-content/uploads/2010/05/duck.jpg" alt="" width="255" height="258" /></a></p>
<p style="text-align: center;">Duck Typing <strong>Ducks</strong>?</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;title=Is+Static+Typing+the+Root+of+All+Evil%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;title=Is+Static+Typing+the+Root+of+All+Evil%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;title=Is+Static+Typing+the+Root+of+All+Evil%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;headline=Is+Static+Typing+the+Root+of+All+Evil%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;title=Is+Static+Typing+the+Root+of+All+Evil%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fis-static-typing-the-root-of-all-evil%2F&amp;title=Is+Static+Typing+the+Root+of+All+Evil%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/is-static-typing-the-root-of-all-evil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inbound Marketing by Dharmesh Shah</title>
		<link>http://blog.aplikacja.info/2010/05/inbound-marketing-by-dharmesh-shah/</link>
		<comments>http://blog.aplikacja.info/2010/05/inbound-marketing-by-dharmesh-shah/#comments</comments>
		<pubDate>Fri, 14 May 2010 12:22:42 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1085</guid>
		<description><![CDATA[

Dharmesh Shah, Hubspot (and author of the popular On Startups blog) presents &#8220;Inbound Marketing&#8221; term, mostly how to attract customers to your product using SEO (Search Engine Optimisation) techniques.
He believes &#8220;Outbound Maketing&#8221; (traditional channels like TV, phones, &#8230;) that gives results in ~1% cases will be replaced by &#8220;Inbound Marketing&#8221; in future (allow the people [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<object style="width: 400px; height: 241px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="241" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/H1KNkqgq3eo&amp;hl=en_US&amp;fs=1&amp;rel=0" /><embed style="width: 400px; height: 241px;" type="application/x-shockwave-flash" width="400" height="241" src="http://www.youtube.com/v/H1KNkqgq3eo&amp;hl=en_US&amp;fs=1&amp;rel=0"></embed></object></center></p>
<p>Dharmesh Shah, Hubspot (and author of the popular On Startups blog) presents &#8220;<strong>Inbound Marketing</strong>&#8221; term, mostly how to attract customers to your product using SEO (Search Engine Optimisation) techniques.</p>
<p>He believes &#8220;<strong>Outbound Maketing</strong>&#8221; (traditional channels like TV, phones, &#8230;) that gives results in ~1% cases will be replaced by &#8220;Inbound Marketing&#8221; in future (allow the people to find your product). Dharmesh shows three main channels of &#8220;Inbound Marketing&#8221;:</p>
<ul>
<li>Google (and search engines)</li>
<li>Blogs</li>
<li>Social Networks (Like Facebook)</li>
</ul>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;title=Inbound+Marketing+by+Dharmesh+Shah"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;title=Inbound+Marketing+by+Dharmesh+Shah"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;title=Inbound+Marketing+by+Dharmesh+Shah"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;headline=Inbound+Marketing+by+Dharmesh+Shah"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Inbound+Marketing+by+Dharmesh+Shah&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Inbound+Marketing+by+Dharmesh+Shah&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Inbound+Marketing+by+Dharmesh+Shah&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Inbound+Marketing+by+Dharmesh+Shah&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Inbound+Marketing+by+Dharmesh+Shah&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;title=Inbound+Marketing+by+Dharmesh+Shah&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Finbound-marketing-by-dharmesh-shah%2F&amp;title=Inbound+Marketing+by+Dharmesh+Shah"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/inbound-marketing-by-dharmesh-shah/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>commons-logging.jar considered harmfull?</title>
		<link>http://blog.aplikacja.info/2010/05/commons-logging-jar-considered-harmfull/</link>
		<comments>http://blog.aplikacja.info/2010/05/commons-logging-jar-considered-harmfull/#comments</comments>
		<pubDate>Sat, 01 May 2010 21:55:44 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[logs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1079</guid>
		<description><![CDATA[During recent 2nd level cache implementation research I noticed EHCache has a very funny dependency: slf4j. Hey, WTH, yet another log library implementation? &#8211; I asked myself. No commons-logging as everywhere?
I googled around and found &#8220;The evils of commons-logging.jar and its ilk&#8221; article. It highlight some problems related to commons-logging usage:

Different commons-logging versions in one [...]]]></description>
			<content:encoded><![CDATA[<p>During recent 2nd level cache implementation research I noticed <a href="http://ehcache.org/">EHCache</a> has a very funny dependency: <a href="http://www.slf4j.org/">slf4j</a>. Hey, WTH, <strong>yet another log library implementation?</strong> &#8211; I asked myself. No commons-logging as everywhere?</p>
<p>I googled around and found <a title="Permanent Link: The evils of commons-logging.jar and its ilk" rel="bookmark" href="http://www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/">&#8220;The evils of commons-logging.jar and its ilk&#8221;</a> article. It highlight some problems related to commons-logging usage:</p>
<ol>
<li>Different commons-logging versions in one project mirrors <a href="http://en.wikipedia.org/wiki/DLL_hell">DLL-hell</a> problem</li>
<li>Collection logs from all sources into one stream has <strong>no bigger value</strong> for a developer</li>
<li>Advanced configuration is logging <strong>back-end dependant</strong> (appenders for log4j for example), so unified layer is not valuable here</li>
<li><strong>Configuration</strong> is not intuitive and hard</li>
</ol>
<p>I agree with 1, 3 and 4. 2 is questionable: sometimes logs sorted in one timeline allows for better error analysis.</p>
<p><a href="http://www.slf4j.org/">slf4j</a> is proposed as an alternative. It&#8217;s more modular and (probably) simpler that commons-logging. All configuration is a matter of placing selected implementation (slf4j-jdk14-1.5.8.jar for instance) jar on classpath. And voila! &#8211; logging is done thru JDK 1.4 logging. Quite simple.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;title=commons-logging.jar+considered+harmfull%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;title=commons-logging.jar+considered+harmfull%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;title=commons-logging.jar+considered+harmfull%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;headline=commons-logging.jar+considered+harmfull%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=commons-logging.jar+considered+harmfull%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=commons-logging.jar+considered+harmfull%3F&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=commons-logging.jar+considered+harmfull%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=commons-logging.jar+considered+harmfull%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=commons-logging.jar+considered+harmfull%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;title=commons-logging.jar+considered+harmfull%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F05%2Fcommons-logging-jar-considered-harmfull%2F&amp;title=commons-logging.jar+considered+harmfull%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/05/commons-logging-jar-considered-harmfull/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Debug JNDI Lookup Problems</title>
		<link>http://blog.aplikacja.info/2010/04/how-to-debug-jndi-lookup-problems/</link>
		<comments>http://blog.aplikacja.info/2010/04/how-to-debug-jndi-lookup-problems/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 14:27:39 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1062</guid>
		<description><![CDATA[Sometimes when you get an exception like this:
javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:"
you want to see what entries are visible in JNDI. No problem, place this code somewhere near lookup problem code location:
InitialContext ic = new InitialContext();
NamingEnumeration it = ic.list("java:comp");
System.out.println("JNDI entries:");
while (it.hasMore()) {
    NameClassPair nc = it.next();
    [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you get an exception like this:</p>
<pre>javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:"</pre>
<p>you want to see <strong>what entries are visible in JNDI</strong>. No problem, place this code somewhere near lookup problem code location:</p>
<pre>InitialContext ic = new InitialContext();
NamingEnumeration it = ic.list("java:comp");
System.out.println("JNDI entries:");
while (it.hasMore()) {
    NameClassPair nc = it.next();
    System.out.println("JNDI entry: " + nc.getName());
}</pre>
<p>You will see <strong>all JNDI names</strong> availailable on console then (you can use your logging library instead of course).</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;title=How+To+Debug+JNDI+Lookup+Problems"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;title=How+To+Debug+JNDI+Lookup+Problems"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;title=How+To+Debug+JNDI+Lookup+Problems"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;headline=How+To+Debug+JNDI+Lookup+Problems"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+To+Debug+JNDI+Lookup+Problems&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+To+Debug+JNDI+Lookup+Problems&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+To+Debug+JNDI+Lookup+Problems&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+To+Debug+JNDI+Lookup+Problems&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+To+Debug+JNDI+Lookup+Problems&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;title=How+To+Debug+JNDI+Lookup+Problems&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-debug-jndi-lookup-problems%2F&amp;title=How+To+Debug+JNDI+Lookup+Problems"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/how-to-debug-jndi-lookup-problems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Secure Connection Failed&#8221; on https://forum.hibernate.org</title>
		<link>http://blog.aplikacja.info/2010/04/secure-connection-failed-on-forum-hibernate-org/</link>
		<comments>http://blog.aplikacja.info/2010/04/secure-connection-failed-on-forum-hibernate-org/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 06:27:10 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1056</guid>
		<description><![CDATA[Oops! Someone forgot to renew a SSL certificate  

]]></description>
			<content:encoded><![CDATA[<p>Oops! Someone forgot to renew a SSL certificate <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/18.png"><img class="aligncenter size-full wp-image-1057" title="18" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/18.png" alt="" width="500" height="268" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;headline=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecure-connection-failed-on-forum-hibernate-org%2F&amp;title=%22Secure+Connection+Failed%22+on+https%3A%2F%2Fforum.hibernate.org"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/secure-connection-failed-on-forum-hibernate-org/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Websphere Extreme Scale + Hibernate = ?</title>
		<link>http://blog.aplikacja.info/2010/04/websphere-extreme-scale-hibernate/</link>
		<comments>http://blog.aplikacja.info/2010/04/websphere-extreme-scale-hibernate/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 20:27:48 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1041</guid>
		<description><![CDATA[Recently I was asked to integrate WXS (Websphere Extreme Scale, commercial cache implementation from IBM) into existing WPS (Websphere Process Server)-based project to implement read-only non-distributed cache (one independent cache instance per JVM). The idea is to plug cache implementation using 2nd level cache interfaces defined by Hibernate.
I plugged in the objectgrid.jar into hibernate configuration:
&#60;property [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/WS_XTP_260x150.jpg"><img class="alignright size-full wp-image-1043" title="WS_XTP_260x150" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/WS_XTP_260x150.jpg" alt="" width="260" height="150" /></a>Recently I was asked to integrate WXS (<a href="http://www-01.ibm.com/software/webservers/appserv/extremescale/">Websphere Extreme Scale</a>, commercial cache implementation from IBM) into existing WPS (Websphere Process Server)-based project to implement <strong>read-only non-distributed cache</strong> (one independent cache instance per JVM). The idea is to plug cache implementation using 2nd level cache interfaces defined by Hibernate.</p>
<p>I plugged in the <strong>objectgrid.jar</strong> into hibernate configuration:</p>
<pre>&lt;property name="cache.provider_class"&gt;
com.ibm.websphere.objectgrid.hibernate.cache.ObjectGridHibernateCacheProvider
&lt;/property&gt;
<span id="more-1041"></span></pre>
<p>then saw the following <strong>exception</strong> during Hibernate initialisation:</p>
<pre>[4/29/10 10:08:34:462 CEST] 00000069 RegisteredSyn E WTRN0074E:
Exception caught from after_completion synchronization operation:
java.lang.NoSuchMethodError:
org/hibernate/cache/CacheException.&lt;init&gt;(<strong>Ljava/lang/Throwable</strong>; )V
at com.ibm.ws.objectgrid.hibernate.cache.ObjectGridHibernateCache.getSession(
ObjectGridHibernateCache.java:149)
at com.ibm.ws.objectgrid.hibernate.cache.ObjectGridHibernateCache.put(
ObjectGridHibernateCache.java:385)
at org.hibernate.cache.UpdateTimestampsCache.invalidate(
UpdateTimestampsCache.java:67)</pre>
<p>WXS expects <strong>CacheException(java.lang.Throwable)</strong> constructor, Hibernate API supports this constructor <a href="http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/cache/CacheException.html">since version 3.2</a>. <a href="http://www.dil.univ-mrs.fr/%7Emassat/docs/hibernate-3.1/api/org/hibernate/cache/CacheException.html">Version 3.1</a> currently used in project doesn&#8217;t support this constructor (only CacheException(java.lang.Exception) is present). This issue forced Hibernate upgrade in the project. Note that no Hibernate version requirements found on <a href="http://www-01.ibm.com/support/docview.wss?rs=3023&amp;uid=swg27015857">official &#8220;requirements&#8221; page</a> (huh?).</p>
<p>Conclusions:</p>
<ul>
<li><a href="http://www.ibm.com/us/en/">BIG BLUE</a> is not a guarantee for <strong>high quality documentation</strong></li>
<li><strong>Closed source</strong> is harder to implement (any problems put you in waiting support queue)</li>
<li><strong>&#8220;Big&#8221; != Good</strong> (IMHO), would you pay for read-only cache implementation $14,400.00 per PVU and deploy giant objectgrid.jar (15M) for this very purpose? Yikes!</li>
</ul>
<p>I&#8217;m going to talk with project sponsor about better <strong>ways to spend money</strong> (my salary increase, maybe <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). Seriously: free EHCache / OSCache are more than sufficient for the task. They are small and Open Source.</p>
<p><em>&#8220;Do not hire Godzilla to pull Santa&#8217;s sleigh, reindeers are better for this purpose&#8221;</em> &#8211; Bart Simpson.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/godzilla.jpeg"><img class="aligncenter size-full wp-image-1052" title="godzilla" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/godzilla.jpeg" alt="" width="300" height="307" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;headline=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwebsphere-extreme-scale-hibernate%2F&amp;title=Websphere+Extreme+Scale+%2B+Hibernate+%3D+%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/websphere-extreme-scale-hibernate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SSL Certificate for Lighttpd HOWTO</title>
		<link>http://blog.aplikacja.info/2010/04/ssl-certificate-for-lighttpd-howto/</link>
		<comments>http://blog.aplikacja.info/2010/04/ssl-certificate-for-lighttpd-howto/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 22:16:13 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1030</guid>
		<description><![CDATA[When your customer enters your website they do not want to make their passwords / credit card information to be visible for everyone (sniffing local network or one of routers in the way). That&#8217;s why SSL (Secure Socket Layer) was born. Is simple words it wraps HTTP connection in a secure tunnel.
Another story is man-in-the-middle [...]]]></description>
			<content:encoded><![CDATA[<p>When your customer enters your website they do not want to make their passwords / credit card information to <strong>be visible for everyone</strong> (sniffing local network or one of routers in the way). That&#8217;s why SSL (Secure Socket Layer) was born. Is simple words it wraps HTTP connection in a secure tunnel.</p>
<p>Another story is man-in-the-middle attack possibility or faking DNS servers response. You (as customer opening the webpage) should ensure that you are <strong>connecting to website you intended to</strong> (fake bank websites are big risk for your money, so it&#8217;s important). That&#8217;s why certification is closely bundled with connection encryption.</p>
<p>I&#8217;ll show you how obtain and install <strong>SSL certificate</strong> under Lighttpd web server to make your website more trustworthy for your customers.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/dilbert-20071116.gif"><img class="size-full wp-image-1032 alignnone" title="dilbert-20071116" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/dilbert-20071116.gif" alt="" width="600" height="208" /></a></p>
<p><span id="more-1030"></span></p>
<p>Fitrst, create <strong>directory structure</strong> that will make organisation easier:</p>
<pre># mkdir -p /etc/lighttpd/ssl/domain.com
# cd /etc/lighttpd/ssl/domain.com</pre>
<p>Create <strong>server key</strong> (you will be prompted for a password) and CSR (<strong>Certificate Signing Request</strong>) that will be used for certification creation in one step:</p>
<pre># openssl req -newkey rsa:1024 -keyout domain.com.key -out domain.com.csr</pre>
<p><strong>Remove attached password</strong> (I do not want to have to pass the password on server restart):</p>
<pre># openssl rsa -in domain.com.key -out domain.com.nopass.key</pre>
<p>Then, pass generated domain.com.csr to your <strong>SSL certificate provider</strong>. You will have to prove you own the domain (an email will be sent to root@domain.com with special URL). After succesfull verification certificate is created. Place (paste) this certificate inside /etc/lighttpd/ssl/domain.com.crt file.</p>
<p>Then you have to <strong>create pem file</strong> (not sure why it&#8217;s organised that way):</p>
<pre># cat domain.com.nopass.key domain.com.crt &gt; domain.com.pem</pre>
<p>Then you have to tell Lighttpd to <strong>handle SSL traffic for given IP</strong> address and port:</p>
<pre>$SERVER["socket"] == "IP-ADDRESS-HERE:443" {
    ssl.engine = "enable"
    ssl.pemfile = "/etc/lighttpd/ssl/domain.com/domain.com.pem"
    ssl.ca-file = "/etc/lighttpd/ssl/domain.com/domain.com.crt"
}</pre>
<p>First note: for SSL traffic you have to specify <strong>IP address</strong>, not domain name. SSL handshake is done BEFORE headers are sent to server, so name based virtual hosts are not possible (certificates must be checked).</p>
<p>Second note: if you use the same domain for HTTP and HTTPS traffic don&#8217;t have to specify <strong>server.document-root</strong> and other domain-related parameters. They will be borrowed from:</p>
<pre>$HTTP["host"] = "domain.com" {
(...)</pre>
<p>(plain HTTP) section.</p>
<p>Now browser redirected to https://domain.com should show you your web-application <strong>without warnings</strong>.</p>
<p>Happy SSL-ing!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;title=SSL+Certificate+for+Lighttpd+HOWTO"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;title=SSL+Certificate+for+Lighttpd+HOWTO"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;title=SSL+Certificate+for+Lighttpd+HOWTO"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;headline=SSL+Certificate+for+Lighttpd+HOWTO"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=SSL+Certificate+for+Lighttpd+HOWTO&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=SSL+Certificate+for+Lighttpd+HOWTO&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=SSL+Certificate+for+Lighttpd+HOWTO&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=SSL+Certificate+for+Lighttpd+HOWTO&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=SSL+Certificate+for+Lighttpd+HOWTO&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;title=SSL+Certificate+for+Lighttpd+HOWTO&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fssl-certificate-for-lighttpd-howto%2F&amp;title=SSL+Certificate+for+Lighttpd+HOWTO"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/ssl-certificate-for-lighttpd-howto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Definiowanie usług w med.aplikacja.info</title>
		<link>http://blog.aplikacja.info/2010/04/definiowanie-uslug-w-med-aplikacja-info/</link>
		<comments>http://blog.aplikacja.info/2010/04/definiowanie-uslug-w-med-aplikacja-info/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 20:40:52 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[pl]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1022</guid>
		<description><![CDATA[System rezerwacji med.aplikacja.info pozwala rezerwować wizyty pacjentów u specjalistów poprzez Internet. Dotychczas w pierwszym kroku pacjent wybierał specjalistę by móc zarezerwować wizytę. Aby ułatwić wybór w przypadku wielu specjalistów system rezerwacji został rozszerzony o możliwość wyboru usług.

Usługi mogą mieć różny czas trwania (i taki czas będzie rezerwowany w kalendarzu specjalisty)
Można przypisać usługi do różnych specjalistów

Uruchomienie [...]]]></description>
			<content:encoded><![CDATA[<p>System rezerwacji <a href="http://med.aplikacja.info/" target="_blank">med.aplikacja.info</a> pozwala rezerwować wizyty pacjentów u specjalistów poprzez Internet. Dotychczas w pierwszym kroku pacjent wybierał specjalistę by móc zarezerwować wizytę. Aby ułatwić wybór w przypadku wielu specjalistów system rezerwacji został rozszerzony o <strong>możliwość wyboru usług</strong>.</p>
<ul>
<li>Usługi mogą mieć <strong>różny czas trwania</strong> (i taki czas będzie rezerwowany w kalendarzu specjalisty)</li>
<li>Można <strong>przypisać usługi do różnych specjalistów</strong></li>
</ul>
<p>Uruchomienie mechanizmu jest bardzo proste: po pierwsze definiujemy usługi i przypisujemy je do wybranych lekarzy (<strong>zakładka &#8220;Usługi&#8221;</strong>).</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/01-define.png"><img class="aligncenter size-full wp-image-1023" title="01-define" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/01-define.png" alt="" width="415" height="372" /></a><span id="more-1022"></span></p>
<p>Od tego momentu pacjent w pierwszej kolejności <strong>wskazuje usługę</strong> którą jest zainteresowany:</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/02-select.png"><img class="aligncenter size-full wp-image-1024" title="02-select" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/02-select.png" alt="" width="308" height="147" /></a></p>
<p>Następnie wybiera specjalistę realizującego szukaną usługę (widzi opis i najbliższy dostępny termin):</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/03-specialist.png"><img class="aligncenter size-full wp-image-1025" title="03-specialist" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/03-specialist.png" alt="" width="498" height="532" /></a></p>
<p>Dalej procedura rejestracji postępuje jak dotychczas (z SMS-owym hasłem).</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;title=Definiowanie+us%C5%82ug+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;title=Definiowanie+us%C5%82ug+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;title=Definiowanie+us%C5%82ug+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;headline=Definiowanie+us%C5%82ug+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;title=Definiowanie+us%C5%82ug+w+med.aplikacja.info&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fdefiniowanie-uslug-w-med-aplikacja-info%2F&amp;title=Definiowanie+us%C5%82ug+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/definiowanie-uslug-w-med-aplikacja-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Migrate Django To Different Database Backend</title>
		<link>http://blog.aplikacja.info/2010/04/how-to-migrate-django-to-different-database-backend/</link>
		<comments>http://blog.aplikacja.info/2010/04/how-to-migrate-django-to-different-database-backend/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 21:41:57 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=992</guid>
		<description><![CDATA[Changing database location is simple &#8211; just launch dump on source database server, import it into destination database, redirect domain and voila! You can use this method to migrate your database into newer database engine version. But what can you do if you realize whole backend must be changed (i.e. from MySQL to PostgreSQL)?
Migrating SQL [...]]]></description>
			<content:encoded><![CDATA[<p>Changing <strong>database location</strong> is simple &#8211; just launch dump on source database server, import it into destination database, redirect domain and voila! You can use this method to migrate your database into newer database engine version. But what can you do if you realize whole backend must be changed (i.e. from MySQL to PostgreSQL)?</p>
<p><strong>Migrating SQL dump</strong> to different database dialect is not very easy (column types / dates formats as first examples come to mind). But you don&#8217;t have to operate on SQL dumps. The simple answer here is: &#8220;dumpdata&#8221;.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2009/07/django-logo-negative.png"><img class="aligncenter size-full wp-image-236" title="django-logo-negative" src="http://blog.aplikacja.info/wp-content/uploads/2009/07/django-logo-negative.png" alt="" width="300" height="137" /></a><span id="more-992"></span></p>
<p>Django uses special <strong>manage.py script</strong> to manage typical operations like: initialisation of database, preloading data, dropping database etc. The command:</p>
<pre>manage.py dumpdata appname</pre>
<p>prints on stdout all data contained in appname in universal Json format. Then you can load dump just created by using:</p>
<pre>manage.py sqlreset gabinet | psql ...
manage.py loaddata filename.json</pre>
<p>Database <strong>state must be reset</strong> before import. That&#8217;s why sqlreset is used. sqlreset alone prints DROP DATABASE statements on stdout allows to purge database from tables (if passed to SQL execution tool).</p>
<p>Additionally you can <strong>gzip JSON data</strong> created to make migration (much) faster:</p>
<pre>manage.py dumpdata appname | gzip -c | ssh destinationserv 'cat &gt; data.json.gz'
(login to destinationserv ...)
manage.py sqlreset appname | psql ...
gzip -dc data.json.gz | manage.py loaddata -</pre>
<p>Happy migrating!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;title=How+To+Migrate+Django+To+Different+Database+Backend"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;title=How+To+Migrate+Django+To+Different+Database+Backend"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;title=How+To+Migrate+Django+To+Different+Database+Backend"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;headline=How+To+Migrate+Django+To+Different+Database+Backend"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=How+To+Migrate+Django+To+Different+Database+Backend&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=How+To+Migrate+Django+To+Different+Database+Backend&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=How+To+Migrate+Django+To+Different+Database+Backend&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=How+To+Migrate+Django+To+Different+Database+Backend&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=How+To+Migrate+Django+To+Different+Database+Backend&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;title=How+To+Migrate+Django+To+Different+Database+Backend&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fhow-to-migrate-django-to-different-database-backend%2F&amp;title=How+To+Migrate+Django+To+Different+Database+Backend"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/how-to-migrate-django-to-different-database-backend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why svn:mime-type does matter?</title>
		<link>http://blog.aplikacja.info/2010/04/why-svnmime-type-does-matter/</link>
		<comments>http://blog.aplikacja.info/2010/04/why-svnmime-type-does-matter/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 11:36:57 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=1007</guid>
		<description><![CDATA[You probably already know that Subversion stores some kind of metadata for all files added to repository. It&#8217;s called &#8220;properties&#8221; in Subversion vocabulary. This key-value map is responsible for registering ingored files masks, file attributes, internal file content type etc.
The property I&#8217;m going to present today is &#8220;mime-type&#8220;. It describes file content in similar way [...]]]></description>
			<content:encoded><![CDATA[<p>You probably already know that Subversion stores some kind of <strong>metadata</strong> for all files added to repository. It&#8217;s called &#8220;<a href="http://svnbook.red-bean.com/en/1.5/svn.ref.properties.html">properties</a>&#8221; in Subversion vocabulary. This key-value map is responsible for registering ingored files masks, file attributes, internal file content type etc.</p>
<p>The property I&#8217;m going to present today is &#8220;<strong>mime-type</strong>&#8220;. It describes file content in similar way to HTTP header &#8220;Content-type&#8221; telling svn client how to handle the file. Typical values are: &#8220;text/plain&#8221;, &#8220;application/octet-stream&#8221;. Especially first part of mime-type is important:</p>
<ul>
<li>text/*: line-by-line merges are used, diffs are generated</li>
<li>any other prefix: no text merges prepared</li>
</ul>
<p>If you do not <strong>set this properly right</strong> you may end up with messed binary file (end-of-line conversions) or non-mergable changes in text file (that is marked as binary by mistake).</p>
<p>Of course during adding a file to workspace <strong>one can forget to set those properties correctly</strong>. Here auto-props comes with help. Auto-props are applied when &#8220;svn add&#8221; command (from command line or from GUI) is issued. Configuration is placed inside &#8220;~/.subversion/config&#8221; file. Here&#8217;s my config fragment from one of projects.</p>
<pre>[auto-props]
*.csv = svn:mime-type=text/plain
*.java = svn:mime-type=text/plain
*.sql = svn:mime-type=text/plain
*.sql = svn:keywords=Author Date Id Revision URL
*.jar = svn:mime-type=application/octet-stream</pre>
<p>Besides mime-type svn:keywords is being set in the example. It controls which keywords are expanded in source files.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://subversion.tigris.org/images/subversion_logo_hor-468x64.png" alt="" width="468" height="64" /></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;title=Why+svn%3Amime-type+does+matter%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;title=Why+svn%3Amime-type+does+matter%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;title=Why+svn%3Amime-type+does+matter%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;headline=Why+svn%3Amime-type+does+matter%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Why+svn%3Amime-type+does+matter%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Why+svn%3Amime-type+does+matter%3F&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Why+svn%3Amime-type+does+matter%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Why+svn%3Amime-type+does+matter%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Why+svn%3Amime-type+does+matter%3F&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;title=Why+svn%3Amime-type+does+matter%3F&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fwhy-svnmime-type-does-matter%2F&amp;title=Why+svn%3Amime-type+does+matter%3F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/why-svnmime-type-does-matter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux Command-line Toolset: xclip</title>
		<link>http://blog.aplikacja.info/2010/04/linux-command-line-toolset-xclip/</link>
		<comments>http://blog.aplikacja.info/2010/04/linux-command-line-toolset-xclip/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 10:01:13 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=997</guid>
		<description><![CDATA[In order to use modern Linux distributions you don&#8217;t have to look at console window. All important system properties are configurable by GUI tools. There are times, however, a small bit of scripting becomes very useful. In order to easilly connect GUI and console world you have to pass data between. A small tool: xclip [...]]]></description>
			<content:encoded><![CDATA[<p>In order to use modern Linux distributions you don&#8217;t have to look at <strong>console window</strong>. All important system properties are configurable by GUI tools. There are times, however, a small bit of scripting becomes very useful. In order to easilly connect GUI and console world you have to pass data between. A small tool: xclip helps in this task.</p>
<p>It&#8217;s very easy to install the tool under Debian-based systems:</p>
<pre>apt-get install xclip</pre>
<p>Collect huge selection into a file (if pasting into terminal may be very slow):</p>
<pre>xclip -o &gt; file_name.txt</pre>
<p>Download selected URL into /tmp/file.out:</p>
<pre>URL=`xclip -o`; test -z "$URL" || wget -O /tmp/file.out "$URL"</pre>
<p>Place file contents into clipboard:</p>
<pre>xclip -i &lt; file_path
</pre>
<p>As you can see xclip is a <strong>handy tool</strong> built with unix-style elegance in mind. Many other applications could be discovered for this tool.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;title=Linux+Command-line+Toolset%3A+xclip"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;title=Linux+Command-line+Toolset%3A+xclip"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;title=Linux+Command-line+Toolset%3A+xclip"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;headline=Linux+Command-line+Toolset%3A+xclip"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Linux+Command-line+Toolset%3A+xclip&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Linux+Command-line+Toolset%3A+xclip&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Linux+Command-line+Toolset%3A+xclip&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Linux+Command-line+Toolset%3A+xclip&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Linux+Command-line+Toolset%3A+xclip&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;title=Linux+Command-line+Toolset%3A+xclip&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Flinux-command-line-toolset-xclip%2F&amp;title=Linux+Command-line+Toolset%3A+xclip"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/linux-command-line-toolset-xclip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recreate Derby Database Under WebSphere</title>
		<link>http://blog.aplikacja.info/2010/04/recreate-derby-database-under-websphere/</link>
		<comments>http://blog.aplikacja.info/2010/04/recreate-derby-database-under-websphere/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 09:02:40 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[websphere]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=995</guid>
		<description><![CDATA[WebSphere uses SQL databases for internal managment of MQ queues (Derby database engine under the covers). Sometimes you need to reset their state. Here&#8217;s the script that erase and recreate BPEDB database state (tested under WS 6.1.2):
rm -rf $WID_HOME/pf/wps/databases/BPEDB
echo "CONNECT 'jdbc:derby:$WID_HOME/pf/wps/databases/BPEDB;create=true' AS BPEDB;"&#124;\
    $WID_HOME/runtimes/bi_v61/derby/bin/embedded/ij.sh /dev/stdin


]]></description>
			<content:encoded><![CDATA[<p>WebSphere uses SQL databases for internal managment of MQ queues (<a href="http://db.apache.org/derby/">Derby</a> database engine under the covers). Sometimes you need to reset their state. Here&#8217;s the script that erase and recreate BPEDB database state (tested under WS 6.1.2):</p>
<pre>rm -rf $WID_HOME/pf/wps/databases/BPEDB
echo "CONNECT 'jdbc:derby:$WID_HOME/pf/wps/databases/BPEDB;create=true' AS BPEDB;"|\
    $WID_HOME/runtimes/bi_v61/derby/bin/embedded/ij.sh /dev/stdin

<a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/ws-mark-170x22.gif"><img class="aligncenter size-full wp-image-1004" title="ws-mark-170x22" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/ws-mark-170x22.gif" alt="" width="170" height="22" /></a></pre>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;title=Recreate+Derby+Database+Under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;title=Recreate+Derby+Database+Under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;title=Recreate+Derby+Database+Under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;headline=Recreate+Derby+Database+Under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Recreate+Derby+Database+Under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Recreate+Derby+Database+Under+WebSphere&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Recreate+Derby+Database+Under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Recreate+Derby+Database+Under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Recreate+Derby+Database+Under+WebSphere&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;title=Recreate+Derby+Database+Under+WebSphere&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frecreate-derby-database-under-websphere%2F&amp;title=Recreate+Derby+Database+Under+WebSphere"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/recreate-derby-database-under-websphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second Level Cache For SQL Queries Under Hibernate</title>
		<link>http://blog.aplikacja.info/2010/04/second-level-cache-for-sql-queries-under-hibernate/</link>
		<comments>http://blog.aplikacja.info/2010/04/second-level-cache-for-sql-queries-under-hibernate/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 08:51:24 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[j2ee]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=977</guid>
		<description><![CDATA[Second level cache in Hibernate allows to greatly speed-up your application by minimizing number of SQL queries issued and serving some results from in-memory cache (with optional disk storage or distributed cache). You have option to plug in different cache libraries (or to Bring Your Own Cache &#8211; an approach popular among my colleagues from [...]]]></description>
			<content:encoded><![CDATA[<p>Second level cache in Hibernate allows to greatly speed-up your application by <strong>minimizing number of SQL queries</strong> issued and serving some results from in-memory cache (with optional disk storage or distributed cache). You have option to plug in different cache libraries (or to Bring Your Own Cache &#8211; an approach popular among my colleagues from India <img src='http://blog.aplikacja.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). There are caching limits you must be aware of when implementing 2nd level cache.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2009/09/hibernate_logo_a.png"><img class="aligncenter size-full wp-image-339" title="hibernate_logo_a" src="http://blog.aplikacja.info/wp-content/uploads/2009/09/hibernate_logo_a.png" alt="" width="400" height="111" /></a></p>
<p><span id="more-977"></span></p>
<h2>ID-based entity lookup cache</h2>
<p>Caching <strong>entity-based lookup by id</strong> is very straightforward:</p>
<pre>&lt;session-factory&gt;
    &lt;property name="cache.provider_class"&gt;
        com.opensymphony.oscache.hibernate.OSCacheProvider
    &lt;/property&gt;
    (...)
&lt;/session-factory&gt;

&lt;class name="EntityClass" table="ENTITY_TABLE"&gt;
   &lt;cache usage="read-only" /&gt;
   (...)
&lt;/class&gt;</pre>
<p>Since then selecting EntityClass by id will use cache (BTW. remember to set cache expiration policy if entity is mutable!). But querying but other entity attributes will not cache the results.</p>
<h2>Query cache</h2>
<p>Here so-called &#8220;<strong>query cache</strong>&#8221; jumps in:</p>
<pre>&lt;session-factory&gt;
    &lt;property name="cache.use_query_cache"&gt;true&lt;/property&gt;
    (...)
&lt;/session-factory&gt;

Query query = new Query(EntityClass.class);
(...)
query.setCacheable(true);
query.list();</pre>
<p>and voila! Queries issued (with parameters) are indices for cached results. The very important note is the value stored in cache. <strong>Entity keys and types are stored</strong>. Why is it important? Because it complicates caching SQL queries.</p>
<h2>Caching SQL queries</h2>
<p>Query cache requires query result to be Hibernate-known entity because the reason I mentioned above. That <strong>disallow to cache</strong> the following construct:</p>
<pre>&lt;!-- Map the resultset on a map. --&gt;
&lt;class name="com.comapny.MapDTO" entity-name="EntityMap"&gt;
&lt;id name="entityKey" type="java.math.BigDecimal" column="ID" length="38"
access="com.company.MapPropertyAccessor" /&gt;
&lt;property name="achLimit" type="java.lang.String" length="256" access="com.company.MapPropertyAccessor" /&gt;
&lt;/class&gt;

&lt;!-- alias is used in query --&gt;
&lt;resultset name="EntityMapList"&gt;
&lt;return alias="list" entity-name="EntityMap" /&gt;
&lt;/resultset&gt;

&lt;sql-query name="NamedQueryName" resultset-ref="EntityMapList"&gt;
SELECT (...) AS {list.entityKey}
(...)
FROM TABLE_NAME
WHERE
(...)
&lt;/sql-query&gt;
</pre>
<p>We will get the error:</p>
<pre>Error: could not load an entity: EntityMap#1028
ORA-00942: table or view does not exist</pre>
<p>EntityMap cannot be loaded separately by Hibernate <strong>because it&#8217;s a DTO</strong> (data transfer object), not the entity. How to fix this error? Just change result of named query from DTO to corresponding entity. Then entity retrieved will be cached properly by Hibernate.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;headline=Second+Level+Cache+For+SQL+Queries+Under+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsecond-level-cache-for-sql-queries-under-hibernate%2F&amp;title=Second+Level+Cache+For+SQL+Queries+Under+Hibernate"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/second-level-cache-for-sql-queries-under-hibernate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>site-uptime.net: a migration to UK</title>
		<link>http://blog.aplikacja.info/2010/04/site-uptime-net-a-migration-to-uk/</link>
		<comments>http://blog.aplikacja.info/2010/04/site-uptime-net-a-migration-to-uk/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 22:18:47 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[en]]></category>
		<category><![CDATA[s-u]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=970</guid>
		<description><![CDATA[site-uptime.net is a web monitoring service that continuosly measures response time of a server.
Random network instability visible during last days forced me to make a fast migration S1 to new server. Linode slice deployed in UK was choosen as default platform for S1 monitoring station. Their networks and servers proved to be very stable in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/11.png"><img class="alignright size-full wp-image-974" title="1" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/11.png" alt="" width="300" height="231" /></a>site-uptime.net is a <a href="http://site-uptime.net/">web monitoring service</a> that continuosly measures response time of a server.</p>
<p>Random network instability visible during last days forced me to make a fast <strong>migration S1 to new server</strong>. <a href="http://www.linode.com/index.cfm">Linode</a> slice deployed in UK was choosen as default platform for S1 monitoring station. Their networks and servers proved to be very stable in past few years.</p>
<p>I hope new infrastructure will make better measurements and <strong>lower false notifications</strong> ratio.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;title=site-uptime.net%3A+a+migration+to+UK"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;title=site-uptime.net%3A+a+migration+to+UK"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;title=site-uptime.net%3A+a+migration+to+UK"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;headline=site-uptime.net%3A+a+migration+to+UK"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=site-uptime.net%3A+a+migration+to+UK&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=site-uptime.net%3A+a+migration+to+UK&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=site-uptime.net%3A+a+migration+to+UK&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=site-uptime.net%3A+a+migration+to+UK&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=site-uptime.net%3A+a+migration+to+UK&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;title=site-uptime.net%3A+a+migration+to+UK&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Fsite-uptime-net-a-migration-to-uk%2F&amp;title=site-uptime.net%3A+a+migration+to+UK"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/site-uptime-net-a-migration-to-uk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rezerwacje zmiennej długości w med.aplikacja.info</title>
		<link>http://blog.aplikacja.info/2010/04/rezerwacje-zmiennej-dlugosci-w-med-aplikacja-info/</link>
		<comments>http://blog.aplikacja.info/2010/04/rezerwacje-zmiennej-dlugosci-w-med-aplikacja-info/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 22:11:29 +0000</pubDate>
		<dc:creator>dariusz.cieslak</dc:creator>
				<category><![CDATA[pl]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.aplikacja.info/?p=963</guid>
		<description><![CDATA[med.aplikacja.info to platforma pozwalająca zintegrować z istniejącą stroną przychodni możliwość rezerwacji wizyt online.

Jeden z moich klientów potrzebował udostępnić swoim pacjentom rezerwacje zmiennej długości (zależnej od rodzaju usługi). Zastosował on tymczasowe (przyznaję, sprytne) rozwiązanie polegające na rezerwacji dwóch kolejnych terminów dla dłuższej wizyty. Było ono jednak dość niewygodne dla pacjenta.

Dziś system został rozszerzony o możliwość definiowania [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://med.aplikacja.info/">med.aplikacja.info</a> to platforma pozwalająca zintegrować z istniejącą stroną przychodni możliwość <strong>rezerwacji wizyt online</strong>.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/1.png"><img class="aligncenter size-full wp-image-964" title="1" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/1.png" alt="" width="400" height="154" /></a></p>
<p>Jeden z moich klientów potrzebował udostępnić swoim pacjentom <strong>rezerwacje zmiennej długości</strong> (zależnej od rodzaju usługi). Zastosował on tymczasowe (przyznaję, sprytne) rozwiązanie polegające na rezerwacji dwóch kolejnych terminów dla dłuższej wizyty. Było ono jednak dość niewygodne dla pacjenta.</p>
<p><span id="more-963"></span></p>
<p>Dziś system został rozszerzony o <strong>możliwość definiowania usług</strong> (wraz z czasem), dzięki czemu wybór specjalisty i usługi jest wygodny. Zapraszam do zapoznania się z <a href="http://med.aplikacja.info/">aktualną wersją systemu</a>.</p>
<p><a href="http://blog.aplikacja.info/wp-content/uploads/2010/04/2.png"><img class="aligncenter size-full wp-image-965" title="2" src="http://blog.aplikacja.info/wp-content/uploads/2010/04/2.png" alt="" width="411" height="225" /></a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;headline=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;u=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info&amp;summary=&amp;source="><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/reader/link?url=http%3A%2F%2Fblog.aplikacja.info%2F2010%2F04%2Frezerwacje-zmiennej-dlugosci-w-med-aplikacja-info%2F&amp;title=Rezerwacje+zmiennej+d%C5%82ugo%C5%9Bci+w+med.aplikacja.info"><img class="lightsocial_img" src="http://blog.aplikacja.info/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://blog.aplikacja.info/2010/04/rezerwacje-zmiennej-dlugosci-w-med-aplikacja-info/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
