<?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>Splatch's devblog &#187; Wiadomości</title>
	<atom:link href="http://blog.dywicki.pl/category/wiadomosci/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dywicki.pl</link>
	<description>Pragmatyzm kontrolowany</description>
	<lastBuildDate>Fri, 05 Jun 2009 14:30:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Parę słów o tym co się dzieje</title>
		<link>http://blog.dywicki.pl/2009/06/05/pare-slow-o-tym-co-sie-dzieje/</link>
		<comments>http://blog.dywicki.pl/2009/06/05/pare-slow-o-tym-co-sie-dzieje/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 06:00:05 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=244</guid>
		<description><![CDATA[Bardzo dużo czasu minęło od ostatniej noty, tym czasem ja w dalszym ciągu nie mam kiedy publikować not technicznych a tym bardziej &#8220;prywatnych&#8221;. Wynika to między innymi z tego, że rozpocząłem działalność gospodarczą. Moja firma nazywa się Code-House i zajmuje się doradztwem, szkoleniami jak i wytwarzaniem oprogramowania. Szczegóły oferty znajdziecie na stronie firmowej jeśli zostanie [...]]]></description>
			<content:encoded><![CDATA[<p>Bardzo dużo czasu minęło od ostatniej noty, tym czasem ja w dalszym ciągu nie mam kiedy publikować not technicznych a tym bardziej &#8220;prywatnych&#8221;. Wynika to między innymi z tego, że rozpocząłem działalność gospodarczą. Moja firma nazywa się <a href="http://code-house.org/">Code-House</a> i zajmuje się doradztwem, szkoleniami jak i wytwarzaniem oprogramowania. Szczegóły oferty znajdziecie na stronie firmowej jeśli zostanie w końcu uruchomiona. ;) No a tak na co dzień jestem pracownikiem kontraktowym.</p>
<p>W <a href="http://blog.dywicki.pl/2008/12/09/timeunit-enum-in-java-and-class-inphp/#comment-39687">jednym </a> z komentarzy <a href="http://racjonalny.blogspot.com/">Tomasz Bartczak</a> zapytał o nowiny z życia takiej firmy. Tych którzy są zainteresowani tym tematem zapraszam na <a href="http://blog.code-house.org/">oficjalny blog</a> mojej firmy. Jako że jest on oficjalny raczej nie znajdziecie na nim przemyśleń o naturze polityków, ale z pewnością od czasu do czasu będę tam publikował noty techniczne oprócz nowin z firmy. Jeśli ktoś będzie zainteresowany wyłącznie technologią proszę subskrybować kanały odpowiednie dla danych kategorii. :-)</p>
<p>Ważnym pytaniem jest &#8211; co się stanie z tym blogiem? W sieci istnieje cała masa notatników która nie była aktualizowana od wieków, wszystko wskazuje na to że ten stanie się kolejnym. Może od czasu do czasu coś tu się pojawi ale ani tego nie obiecuję (jak zwykłem do tej pory robić) ani nie planuję.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2009/06/05/pare-slow-o-tym-co-sie-dzieje/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java Servlet API 3.0</title>
		<link>http://blog.dywicki.pl/2008/12/22/java-servlet-api-3/</link>
		<comments>http://blog.dywicki.pl/2008/12/22/java-servlet-api-3/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 10:35:47 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Wiadomości]]></category>
		<category><![CDATA[tlumaczenia]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=243</guid>
		<description><![CDATA[Dnia wczorajszego na InfoQ o tym, że został udostępniony szkic specyfikacji Servlet API 3.0. Największe nowości to&#8230; adnotacje, które będą mogły być użyte w miejsce interfejsów i dziedziczenia. 


Łatwiejsze tworzenie, ang. Ease of Development (Eod): W wcześniejszym szkicu zostały zaprezentowane adnotacje jako sposób na stworzenie Servletu &#8211; POJO. Jakkolwiek po dyskusji i odpowiedzi społeczności adnotacje [...]]]></description>
			<content:encoded><![CDATA[<p>Dnia wczorajszego na <a href="http://infoq.com">InfoQ</a> o tym, że został udostępniony <a href="http://www.infoq.com/news/2008/12/servlet3_debate">szkic specyfikacji</a> Servlet <acronym title="Application Programming Interface">API</acronym> 3.0. Największe nowości to&#8230; adnotacje, które będą mogły być użyte w miejsce interfejsów i dziedziczenia. </p>
<blockquote>
<ul>
<li>Łatwiejsze tworzenie, ang. <em>Ease of Development</em> (Eod): W wcześniejszym szkicu zostały zaprezentowane adnotacje jako sposób na stworzenie Servletu &#8211; POJO. Jakkolwiek po dyskusji i odpowiedzi społeczności adnotacje @GET i @POST na poziomie metod zostały wycofane. Zostają jednak adnotacje dla typów &#8211; deklaracja sevletu @WebServlet oraz deklaracja filtru @ServletFilter, @WebServletContextListener będzie alternatywnym sposobem na zdefiniowanie context listenera. Dodatkowo adnotacje takie jak @Resouorce będą wspierane w aplikacjach webowych będą zachowywać się tak jak w starszej wersji specyfikacji (2.5).</li>
<li>Rozszerzalność: szkielety webowe zbudowane na bazie servletów są bardzo popularne. Jest ich bardzo wiele, do wyboru w zależności od problemów, które mają rozwiązywać. Specyfikacja będzie umożliwiała łatwiejszą konfigurację tychże szkieletów.</li>
<li>Przetwarzanie asynchroniczne: największym wyzwaniem i zmianą jaką podjęli autorzy specyfikacji. W poprzedniej wersji zostały zdefiniowane operacje zatrzymania (suspend) oraz wznowienia (resume). Po publikacji grupa ekspertów podjęła dyskusję na temat przypadków użycia takiego rozwiązania.</li>
</ul>
</blockquote>
<p>Na łamach <a href="http://www.infoq.com/news/2008/12/servlet3_debate">InfoQ</a> są fragmenty dyskusji na temat fragmentów specyfikacji. Ludzie z JBossa krytykują Jetty, inni krytykują grupę która pracuje nad specyfikacją, że kiepsko współpracuje ze społecznością.</p>
<p>Mam osobiście nadzieję, że ta burza mózgów wyjdzie nam na dobre i adnotacje w Servlet <acronym title="Application Programming Interface">API</acronym> 3.0 nie będą jedyną nowością. :-)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2008/12/22/java-servlet-api-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agavi IDE, prace trwają</title>
		<link>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/</link>
		<comments>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 23:54:39 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=203</guid>
		<description><![CDATA[ Cały dzisiejszy dzień poświęciłem na zbudowanie szkieletu modelu pod Agavi IDE. W trakcie dnia zaszło kilka nagłych zwrotów akcji na miarę dobrego filmu sensacyjnego ;). Początkowo pragnąłem wykorzystać Eclipse Modeling Framework do zarządzania obiektami. Wszystko szło gładko, dopóki nie spróbowałem wygenerować kodu wolnego od zależności EMF. Koniec końców dowiedziałem się, że z EMF nie [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/manager.PNG' title='Stored agavi project :)' rel='lightbox' style="text-decoration: none"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/12/manager.thumbnail.PNG' alt='Stored agavi project :)' rel='lightbox' style="margin: 5px"  align="right" /></a> Cały dzisiejszy dzień poświęciłem na zbudowanie szkieletu modelu pod Agavi IDE. W trakcie dnia zaszło kilka nagłych zwrotów akcji na miarę dobrego filmu sensacyjnego ;). Początkowo pragnąłem wykorzystać <a href="http://www.eclipse.org/modeling/">Eclipse Modeling Framework</a> do zarządzania obiektami. Wszystko szło gładko, dopóki nie spróbowałem wygenerować kodu wolnego od zależności EMF. Koniec końców dowiedziałem się, że z EMF nie da się wygenerować zwykłych Java Beanów. Niestety, ale zarządzanie wszystkim poprzez otoczkę EMF niezbyt mi się uśmiechało. Model trzymany w pamięci nie potrzebuje wodotrysków, mogą to być zwykle <a href="http://en.wikipedia.org/wiki/POJO">POJO</a>.<br />
Przepisałem więc cały kod sam, na nowo. Diagram, który początkowo ilustrował całą strukturę, troszkę się zmienił, nie mniej wersję bazową załączam na obrazku.</p>
<p>
<a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/default.png' title='Agavi IDE Model Draft' rel='lightbox' style="text-decoration: none"><img src='http://blog.dywicki.pl/wp-content/uploads/2007/12/default.thumbnail.png' alt='Agavi IDE Model Draft' rel='lightbox' style="margin: 5px" align="right" /></a> Kolejny problem jaki wylazł to zapisywanie obiektów w db4o. Początkowo założyłem sobie, że niektórym elementom będę przypisywał lokalizacje (na diagramie interfejs IResourceLink). Okazało się jednak, że pochodne IResource (IFolder, IFile) w Eclipse zawierają sporo informacji, z których zapisaniem był problem (PreferencesStore), a które z punktu widzenia AgaviIDE były zbyteczne. Ilość zapisanych obiektów była przytłaczająca, już po chwili pracy baza projektu miała ponad 1 megabajt. Biorąc pod uwagę to, że jest tam zapisywany model, który zmienia się często i w którym wyszukiwanie powinno być możliwie najszybsze sytuacja taka była nie do przyjęcia. Znowu przekopałem cały kod modelu, tym razem po to by korzystać ze klasy java.io.File. Masakra, koniec końców udało mi się całość uruchomić. Builder działa, obiekty są zapisywane (drugi obrazek). Teraz dorzucić jeszcze wyciąganie informacji z plików php i powinno być ok..</p>
<p>Oto output, którym w tej chwili częstuje builder.</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">incremental build</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">create new project</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">project location E:\agavi-ide\org.<span style="">agavi</span>.<span style="">editor</span>.<span style="">module</span>\workspace\Agavi test</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">project modules <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: Agavi test, resource type: Project</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: Admin, resource type: Folder</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: actions, resource type: Folder</div>
</li>
<li style="font-weight: normal;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">change: ErrorAction.<span style="">class</span>.<span style="">php</span>, resource type: File </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Pomyślcie jak fajnie będzie się edytować routing.. podanie ścieżki, wskazanie akcji i gotowe.. albo konfiguracja walidatorów na podobna do tej z <a href='http://blog.dywicki.pl/wp-content/uploads/2007/12/facesconfig-validator.png' title='JSF Tools…'>JSF Tools</a><noscript>Une bien longue suite des <a href="http://www.accessiblesociety.net">jeux de casino en ligne</a>.</noscript></p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/12/02/agavi-ide-prace-trwaja/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agavi IDE, db4o 7.0, ObjectNotStorableException i Ant :)</title>
		<link>http://blog.dywicki.pl/2007/11/30/agavi-ide-db4o-70-objectnotstorableexception-i-ant/</link>
		<comments>http://blog.dywicki.pl/2007/11/30/agavi-ide-db4o-70-objectnotstorableexception-i-ant/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 23:21:25 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[Inne]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Wiadomości]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=201</guid>
		<description><![CDATA[Dnia dzisiejszego zmobilizowałem się by nieco popracować nad modelem dla Agavi IDE. Jest to podstawa bez której ciężko budować kolejne edytory. Trzeba w końcu wiedzieć jakie akcje, widoki etc są w projekcie by sugerować użytkownikowi poprawne wartości.
Jak donosi Michał Mech na swoim blogu, konkurencja nie śpi i wszczęła prace nad integracją Eclipse i Symfony - [...]]]></description>
			<content:encoded><![CDATA[<p>Dnia dzisiejszego zmobilizowałem się by nieco popracować nad modelem dla Agavi IDE. Jest to podstawa bez której ciężko budować kolejne edytory. Trzeba w końcu wiedzieć jakie akcje, widoki etc są w projekcie by sugerować użytkownikowi poprawne wartości.<br />
Jak donosi <a href="http://michalmech.pl">Michał Mech</a> na <a href="http://michalmech.pl/index.php/2007/11/29/symfoclipse-wsparcie-dla-symfony-na-platformie-eclipse/">swoim blogu</a>, konkurencja nie śpi i wszczęła prace nad integracją Eclipse i Symfony - tak też narodziło się <a href="http://">Symfoclipse</a>. Stąd straciłem już palmę pierwszeństwa i pozostaje mi walczyć na polu jakości i funkcjonalności. <a href="http://zend.com">Zend</a> również serwuje wsparcie dla <a href="http://framework.zend.com/">Zend Framework</a>, aczkolwiek po <a href="http://www.zend.com/webinar/studio/EN_11_Zend_Studio_Neon_Zend_Framework_Support/">prezentacji</a> miałem mieszane uczucia. Przede wszystkim lektor mówiący z paskudnym angielskim akcentem. Nie wiem, może jestem wyczulony, ale gdy słyszę te fonetyczne wygibasy to mnie to mierzi, może dla jednych to plus, ale dla mnie lepszym sprzedawcą produktu jest ktoś kto mówi o swoim projekcie chociażby z francuskim akcentem niż wynajęty lektor, który ma pomnożyć wrażenie "powagi" przedsięwzięcia. Na drugim miejscu jakość "wsparcia", bo inaczej jak w cudzysłowach tego nie mogę określić, jest po prostu żenująca. Czy mi się wydaje czy oni każą sobie płacić za dodanie kreatora (wizzarda)? ;) Coś mi się wydaje, że załoga <a href="http://phpeclipse.de/"><acronym title="Pre-Hypertext Processing">PHP</acronym> Eclipse</a> dobrze robi ponownie zwierając szyki!</p>
<p>Oczywiście przy pisaniu napotkałem problemy. Pierwszym z nich było zniknięcie klasy buildera, drugim wywalanie się db4o (dev 7.0). O ile pierwszy uraczył mnie gromadą logów o tyle drugi poza pokaźnym stosem nie dał mi nic. Typ wyjątku <b>com.db4o.ext.ObjectNotStorableException</b> - nazwa w miarę jasna, problem w tym, że za tym żadnego uzasadnienia, powodu dla którego wyjątek by leciał. Zero, dosłownie zero informacji.<br />
Na forum db4o znalazłem parę postów - z nich wyciągnąłem wniosek - konieczne jest użycie taska ant, który zmodyfikuje bytecode klasy, ponieważ w przeciwnym wypadku db4o próbuje serializować obiekt, a gdy mu się nie uda rzuca w/w wyjątek.</p>
<p>Skrypt ant - który załatwia problem, dla potomnych (<a href="http://developer.db4o.com/forums/thread/43766.aspx">przeróbka z forum</a>):</p>
<pre class="brush: xml;">&lt;project name=&quot;db4o enhance project&quot; default=&quot;enhance&quot; basedir=&quot;.&quot;&gt;

	&lt;!-- inny projekt z workspace'a --&gt;
	&lt;property name=&quot;model.classes.location&quot; location=&quot;E:/agavi-ide/org.codehouse.model&quot; /&gt;
	&lt;!--
	położenie eclipse, db4o szpera w poszukiwaniu zależności klas, tak się składa,
	że mój kod korzysta z paru rzeczy z org.eclipse.core.resources, normalnie ta
	wstawka się nie pojawia
	--&gt;
	&lt;property name=&quot;eclipse.location&quot; location=&quot;E:/eclipse-3.3/eclipse&quot; /&gt;

	&lt;target name=&quot;pack-model&quot;&gt;
		&lt;echo message=&quot;Tworzę archiwum z modelem&quot; /&gt;
	    &lt;jar destfile=&quot;lib/model.jar&quot;&gt;
	        &lt;fileset dir=&quot;${model.classes.location}/bin/&quot;&gt;
	        	&lt;!-- włączamy wszystkie skomilowane klasy --&gt;
	            &lt;include name=&quot;**/*.class&quot; /&gt;
	        &lt;/fileset&gt;
	    &lt;/jar&gt;
	&lt;/target&gt;

	&lt;!-- classpath dla projektu --&gt;
	&lt;path id=&quot;project.classpath&quot;&gt;
		&lt;pathelement path=&quot;${basedir}/bin&quot; /&gt;
		&lt;fileset dir=&quot;lib&quot;&gt;
			&lt;include name=&quot;**/*.jar&quot; /&gt;
		&lt;/fileset&gt;
		&lt;fileset dir=&quot;${eclipse.location}/plugins/&quot;&gt;
			&lt;include name=&quot;**/*.jar&quot; /&gt;
		&lt;/fileset&gt;
	&lt;/path&gt;

    &lt;!-- odwołanie do taska z db4o-tools.jar --&gt;
    &lt;taskdef name=&quot;db4o-enhance&quot; classname=&quot;com.db4o.enhance.Db4oEnhancerAntTask&quot; classpathref=&quot;project.classpath&quot; /&gt;

	&lt;target name=&quot;enhance&quot; depends=&quot;pack-model&quot;&gt;
		&lt;!-- przeoranie źródeł i zależności --&gt;
		&lt;db4o -enhance classtargetdir=&quot;${basedir}/bin&quot; jartargetdir=&quot;${basedir}/lib&quot;&gt;
			&lt;classpath refid=&quot;project.classpath&quot; /&gt;
			&lt;sources dir=&quot;${basedir}/bin&quot; /&gt; &lt;!-- w tym katalogu db4o zajmie się plikami .class --&gt;
			&lt;jars dir=&quot;${basedir}/lib&quot;&gt;
				&lt;include name=&quot;*.jar&quot; /&gt;
				&lt;exclude name=&quot;db4o-*.jar&quot; /&gt;
				&lt;exclude name=&quot;ant.jar&quot; /&gt;
				&lt;exclude name=&quot;bloat-1.0.jar&quot; /&gt;

			&lt;/jars&gt;
		&lt;/db4o -enhance&gt;
	&lt;/target&gt;

&lt;/project&gt;</pre>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/11/30/agavi-ide-db4o-70-objectnotstorableexception-i-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WarsJava</title>
		<link>http://blog.dywicki.pl/2007/11/20/warsjava/</link>
		<comments>http://blog.dywicki.pl/2007/11/20/warsjava/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 23:16:47 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[JAXB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=199</guid>
		<description><![CDATA[W sobotę 17 listopada odbyła się WarsJava. Seria warsztatów realizowana przez Warszawski JUG, a dokładniej przez dwie osoby (kolejność losowa) Jacka Laskowskiego i Łukasza Świerczyńskiego.
Program prezentacji zapowiadał się i był ciekawy. Przede wszystkim rzecz z którą wiązałem największe zainteresowanie to tandem Spring+OSGi, głównie z racji na podpinanie Springa pod Eclipse RCP. Drugi temat, który był [...]]]></description>
			<content:encoded><![CDATA[<p>W sobotę 17 listopada odbyła się <a href="http://warsjava.pl">WarsJava</a>. Seria warsztatów realizowana przez <a href="http://groups.google.com/group/warszawa-jug">Warszawski JUG</a>, a dokładniej przez dwie osoby (kolejność losowa) Jacka Laskowskiego i Łukasza Świerczyńskiego.</p>
<p>Program prezentacji zapowiadał się i był ciekawy. Przede wszystkim rzecz z którą wiązałem największe zainteresowanie to tandem Spring+OSGi, głównie z racji na podpinanie Springa pod Eclipse RCP. Drugi temat, który był mi bliski to Spring Web MVC + Freemaker, z racji na to, że z jednym i drugim będę miał prawdopodobnie styczność w pracy.<br />
 Trzeci tematem, który budził z mojej strony stosunkowo niskie zainteresowanie było JRuby, jednak sama treść prezentacji i sposób jej prowadzenia spowodowały że wciąż jestem pod wrażeniem tego mariażu Javy i Ruby. Wiktorowi podczas prezentacji wyskoczył tylko jeden chochlik, którego dosyć sprawnie wyeliminował. :)</p>
<p>Na końcu chciałem wspomnieć o tym że i ja miałem swój udział na WarsJavie prowadząc warsztat na temat JAXB. Prawdę powiedziawszy czułem się nieco przerażony - wszyscy podjęli się poważnych tematów, Spring, OSGi, JRuby, JMS podczas gdy ja miałem powiedzieć o bibliotece do robienia obiektów z XMLa i XMLa z obiektów. Szczerze powiedziawszy miałem również spore obawy czy treść, którą przygotowałem będzie w stanie zapełnić półtorej godziny, jakie dostałem na prezentację tematu. Postanowiłem więc dokładnie napisać co jest do zrobienia, dopieścić przykłady, wynikiem czego kładłem się spać o 3 w nocy. Węsząc problemy zawczasu spakowałem laptopa, jak się okazało słusznie - obudziłem się na tyle prędko, że zdążyłem wciągnąć spodnie, wybiec na tramwaj.. Gdy dotarłem na miejsce była już 9:10, dosłownie pięć minut przed rozpoczęciem. Byłaby niezła wpadka gdyby zwiał mi tramwaj i musiałbym czekać 10 minut na kolejny. Szczęście - udało się dotrzeć. Na początku drobne problemy z rzutnikiem, następnie z konfiguracją rozdzielczości.. i tym sposobem uleciało dobre 15 minut.<br />
Parę slajdów, które miałem przygotowane minęło stanowczo zbyt szybko i musiałem siadać do klawiatury. Dziwna rzecz, kiedy człowiek siada, używa tylko dłoni, a mimo wszystko język ma zaplątany. :) Zaiste, problematyczne było pisanie i mówienie. Właściwie to więcej pisałem jak mówiłem. Czas zleciał bardzo szybko, zdążyłem w zasadzie omówić 2 aspekty, na które się gotowałem czyli użycie adnotacji i generowanie kodu ze schematu XSD jak i jeden na który się nie przygotowywałem - radzenie sobie z wyjątkami ;). Nie zdążyłem nic powiedzieć na temat wpływania na zachowanie kompilatora schemy (xjc) poprzez tworzenie plików xjb oraz pisania własnych pluginów. Te punkty staną się najprawdopodobniej tematem przyszłych not.<br />
Szczerze byłem również bardzo mile zaskoczony tym, że ktoś poprosił o kod po prezentacji. :)</p>
<p>Na grupie pojawił się <a href="http://groups.google.com/group/warszawa-jug/t/86c5848c35abd7b">wątek z opiniami</a> po warsztatach. Niestety nie byłem na <a href="http://javarsovia.pl">Javarsovii</a> i nie mam punktu odniesienia "co było lepsze". Jakkolwiek zdaje mi się, że tradycyjne prezentacje, gdzie jest kilkanaście slajdów i odrobina kodu zdaje się lepsze. Daje dosyć ogólny pogląd na więcej aspektów niż powstający kod. Z drugiej jednak strony forma warsztatu jest bardziej efektowna, co można było bez wątpienia zaobserwować w przypadku JRuby. Z resztą sama dyskusja tuż po prezentacji Wiktora mogła pokazać jak wiele emocji budzi owe novum. :)</p>
<p>Dla zainteresowanych - zamieściłem <a href="http://media.dywicki.pl/blog/warsjava/jaxb-code.zip">źródła wszystkich projektów</a> jakie realizowałem przed i w trakcie prezentacji oraz <a href="http://media.dywicki.pl/blog/warsjava/jaxb-avi.zip">filmik</a> "z kodowania" (nagrany w <a href="http://camstudio.org/">Cam Studio</a>). Ostrzegam, że avik jest słabo skompresowany i <b>po wypakowaniu zajmuje 670MB</b>!</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/11/20/warsjava/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowa wersje db4o</title>
		<link>http://blog.dywicki.pl/2007/11/15/nowa-wersje-db4o/</link>
		<comments>http://blog.dywicki.pl/2007/11/15/nowa-wersje-db4o/#comments</comments>
		<pubDate>Wed, 14 Nov 2007 23:07:48 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[DB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=198</guid>
		<description><![CDATA[Wczoraj do mojej skrzynki trafił newsletter z db4o, w którym trafiłem na dwie informacje. Pierwsza głosi, że db4o w wersji 6.4 jest gotowe do zastosowań produkcyjnych. Druga, że dostępna jest beta wersji 7.0 z nowym mechanizmem o nazwie 'transparent activation'. Postanowiłem zajrzeć do szczegółów, które tyczą się najnowszej wersji. Wynikiem czego jest to dosyć luźne [...]]]></description>
			<content:encoded><![CDATA[<p>Wczoraj do mojej skrzynki trafił newsletter z db4o, w którym trafiłem na dwie informacje. Pierwsza głosi, że db4o w wersji 6.4 jest gotowe do zastosowań produkcyjnych. Druga, że dostępna jest beta wersji 7.0 z nowym mechanizmem o nazwie 'transparent activation'. Postanowiłem <a href="http://developer.db4o.com/blogs/product_news/archive/2007/11/12/the-7th-dimension.aspx">zajrzeć do szczegółów</a>, które tyczą się najnowszej wersji. Wynikiem czego jest to dosyć luźne tłumaczenie.</p>
<ul>
<li><b>Aktywacja</b><br />
Wyobraź sobie drzewo obiektów, które są ładowane z db4o. Kiedy Twoja aplikacja dobiera się do własności z korzenia z drzewa, normalnym zdaje się wczytanie całego drzewa do pamięci, prawda? Z tym, że jeśli drzewo jest rozłożyste, zajmuje to wiele czasu i wile pamięci. db4o dostarcza teraz funkcjonalności, która wczytuje tylko te obiekty, których na prawdę potrzebujesz. Proces ładowania tych własności nazwaliśmy właśnie 'aktywacją'.
</li>
<li><b>Zapytania natywne</b><br />
Zapytania natywne są w pełni bezpieczne (typesafe?), można je refaktoryzować. Są również normalnie obsługiwane w czasie kompilacji, zgodnie ze składnią języka, w którym został napisany program. Zaglądając pod maskę - wytażenie zapisane przy użyciu konstrukcji języka jest analizowane i konwertowane tak  by używać indeksów tam gdzie tylko można. Dla zainteresowanych <a href="http://www.db4o.com/about/productinformation/whitepapers/Native%20Queries%20Whitepaper.pdf"><acronym title="Portable Document Format">PDF</acronym> w języku angielskim</a>.
</li>
<li><b>Wydajność</b><br />
Obydwa powyższe mechanizmy są przeźroczyste, jakkolwiek Twój byte-code po kompilacji musi zostać przeanalizowany i zoptymalizowany by wykorzystać zaawansowane możliwości, które oferuje db4o. Optymalizator jest dostępny jako task dla Ant bądź jako aplikacja napisana w Javie. Możesz wykonywać swoją pracę w sposób, w jaki robiłeś to do tej pory, a Twoje aplikacje oparte o db4o będą po prostu działały szybciej i zabierały mniej pamięci.
</li>
</ul>
<p>Jak twierdzą Twórcy db4o - z wydaniem wersji developerskiej 7.0, dzięki połączeniu 3 wymienionych wyżej technik, zrobili duży krok w przód, w kierunku realizacji zasadniczych celów, dla których powstaje ich produkt:</p>
<ul>
<li>Developer nie powinien pisać kodu wiążącego się z zapisywaniem obiektów. To jest rola, którą ma pełnić db4o.</li>
<li>Standardowy język programowania. Idealna obiektowa baza danych używa konstrukcji dostarczanych w języku programowania oraz nie narzuca nowej składni.</li>
<li>Łatwość użycia nie ponosi za sobą straty wydajności. Kod, którym zarządza system utrwalania obiektów może być wydajniejszy od pisanego z ręki oszczędzając równocześnie więcej pamięci.</li>
</ul>
<p>Kontynuując dalej czytanie newsa trafiamy na pytanie - "Wszystko do brzmi jak typowy techniczny bełkot, ale jak to wszystko może mi pomóc w realizacji projektów w ramach czasowych i w jaki sposób przekłada się na szczęście mojego klienta?"<br />
W odpowiedzi wymienione zostają plusy, jakie niosą ze sobą nowe możliwości z perspektywy użytkownika:</p>
<ul>
<li>Możesz zachować swój spójność i porządek swojego kodu nawet gdy w grę wchodzi odczytywanie obiektów z bazy</li>
<li>Używając db4o z dużymi drzewami obiektów staje się łatwiejsze, ponieważ nie musisz już dłużej przejmować się inicjowaniem obiektów w Twoim kodzie</li>
<li>Twoja aplikacja będzie działała szybciej równocześnie pochłaniając mniej zasobów, ponieważ wczyta obiekty których potrzebuje w danej chwili.</li>
<li>Nowy optymalizator może być uruchamiany z poziomu Twojego IDE, optymalizując klasy i jar-y w locie. Nie będziesz musiał zmieniać zachowania swojego IDE w żaden sposób by móc skorzystać z mechanizmu aktywacji i optymalizacji zapytań.</li>
</ul>
<p>Dlaczego o tym wszystkim wspominam? :) Ponieważ zastanawiam się czy użyć db4o do obsługi "modelu" w Agavi IDE. Modelem w przypadku Agavi IDE były by przede wszystkim informacje o modułach, akcjach itp.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/11/15/nowa-wersje-db4o/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mój pierwszy edytor&#8230;</title>
		<link>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/</link>
		<comments>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 22:44:39 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JAXB]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SWT]]></category>
		<category><![CDATA[Wiadomości]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=196</guid>
		<description><![CDATA[
Czas jakiś temu udało mi się stworzyć pierwszy działający edytor w oparciu o Eclipse.
Kilka informacji co pod spodem:

SharedHeaderFormEditor - ładny tekstowy nagłówek oraz możliwość dodawania zakładek
FormPage i FormToolkit - użyte do stworzenia układu, który widać na załączonym obrazku
JFace Databinding - zapewnia propagowanie zmian z formularza do obiektów
JAXB 2 - mapowanie plików XML do odpowiednich klas
JFace [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://blog.dywicki.pl/wp-content/uploads/2007/11/agavi-editor.JPG' title='Agavi module configuration editor' rel="lightbox"><img align="right" src='http://blog.dywicki.pl/wp-content/uploads/2007/11/agavi-editor.thumbnail.JPG' alt='Agavi module configuration editor'  rel="lightbox"/></a></p>
<p>Czas jakiś temu udało mi się stworzyć pierwszy działający edytor w oparciu o Eclipse.<br />
Kilka informacji co pod spodem:</p>
<ul>
<li>SharedHeaderFormEditor - ładny tekstowy nagłówek oraz możliwość dodawania zakładek</li>
<li>FormPage i FormToolkit - użyte do stworzenia układu, który widać na załączonym obrazku</li>
<li>JFace Databinding - zapewnia propagowanie zmian z formularza do obiektów</li>
<li>JAXB 2 - mapowanie plików <acronym title="eXtensible Markup Language">XML</acronym> do odpowiednich klas</li>
<li>JFace - table viewer i parę innych dodatków</li>
</ul>
<p>Całość ogólnie jest prosta niczym konstrukcja cepa, w działaniu sprawia się dobrze. Jak tylko ogarnę kod postaram się opisać krok po kroku jak można coś podobnego stworzyć na własny użytek. </p>
<p>Splatch wraca do gry i będzie grać wysoko! ;-)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/11/07/moj-pierwszy-edytor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Używanie JDT</title>
		<link>http://blog.dywicki.pl/2007/10/06/uzywanie-jdt/</link>
		<comments>http://blog.dywicki.pl/2007/10/06/uzywanie-jdt/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 19:57:45 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=188</guid>
		<description><![CDATA[Dla osób, które chciały by przejrzeć opcje JDT jak również utrwalić jakieś ciekawsze skróty klawiaturowe zachęcam do odwiedzenia Using Eclipse Europa - A Tutorial [źródło dzone] :)]]></description>
			<content:encoded><![CDATA[<p>Dla osób, które chciały by przejrzeć opcje JDT jak również utrwalić jakieś ciekawsze skróty klawiaturowe zachęcam do odwiedzenia <a href="http://www.vogella.de/articles/Eclipse/article.html">Using Eclipse Europa - A Tutorial</a> [źródło <a href="http://www.dzone.com/rsslinks/using_eclipse_as_java_ide_tutorial.html">dzone</a>] :)</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/10/06/uzywanie-jdt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prezentacja &#8211; Eclipse GMF</title>
		<link>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/</link>
		<comments>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 20:45:29 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=187</guid>
		<description><![CDATA[Jak stworzyć edytor diagramów z użyciem tandemu technologi EMF + GMF? Otóż bardzo prosto - jak pokazuje prezentacja, którą znalazłem w jednym z kanałów RSS, prowadzącym do eclipser-blog. Szkoda, że nie wszystko w praktyce bywa takie proste jak na prezentacjach! ;)
Bezpośredni link do prezentacji (długo się wczytuje).]]></description>
			<content:encoded><![CDATA[<p>Jak stworzyć edytor diagramów z użyciem tandemu technologi <a href="http://www.eclipse.org/emf/">EMF</a> + <a href="http://www.eclipse.org/gmf/">GMF</a>? Otóż bardzo prosto - jak pokazuje prezentacja, którą znalazłem w jednym z kanałów <acronym title="Really Simple Syndication">RSS</acronym>, prowadzącym do <a href="http://eclipser-blog.blogspot.com/2007/09/nice-gmf-video-for-newcomers.html">eclipser-blog</a>. Szkoda, że nie wszystko w praktyce bywa takie proste jak na prezentacjach! ;)<br />
Bezpośredni <a href="http://mirrors.ibiblio.org/pub/mirrors/eclipse/technology/phoenix/demos/gmf-orgchart/">link do prezentacji</a> (długo się wczytuje).</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/09/17/prezentacja-eclipse-gmf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Ganymede</title>
		<link>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/</link>
		<comments>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 22:04:12 +0000</pubDate>
		<dc:creator>Łukasz Dywicki</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Wiadomości]]></category>

		<guid isPermaLink="false">http://blog.dywicki.pl/?p=185</guid>
		<description><![CDATA[Znamy już nazwę przyszłej dystrybucji Eclipse, będzie nią Ganimedes.
Wiadomo, że ten release wyjdzie, podobnie jak Europa, 29 czerwca. Pojawiły się pierwsze zmiany, które wejdą w skład nowej dystrybucji. Na tą chwilę jeszcze nie wiadomo ile projektów będzie obejmować Ganimedes, póki co jest ich kilka, miejmy nadzieję, że przynajmniej tyle co Europa!]]></description>
			<content:encoded><![CDATA[<p>Znamy już nazwę przyszłej dystrybucji Eclipse, będzie nią <a href="http://pl.wikipedia.org/wiki/Ganimedes_%28ksi%C4%99%C5%BCyc%29">Ganimedes</a>.</p>
<p>Wiadomo, że ten release wyjdzie, podobnie jak Europa, 29 czerwca. Pojawiły się <a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4M1-200708091105/eclipse-news-M1.html">pierwsze zmiany</a>, które wejdą w skład nowej dystrybucji. Na tą chwilę jeszcze nie wiadomo ile projektów będzie obejmować Ganimedes, póki co <a href="http://wiki.eclipse.org/index.php/Ganymede_Simultaneous_Release">jest ich kilka</a>, miejmy nadzieję, że przynajmniej tyle co Europa!</p>]]></content:encoded>
			<wfw:commentRss>http://blog.dywicki.pl/2007/08/17/eclipse-ganymede/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
