tag:blogger.com,1999:blog-32186631448962142732024-03-05T19:36:18.613+01:00O Javie i nie tylko słów kilkaczyli wszystko co wiąże się z Java (Spring Framework, ESB Mule, OO, AOP, TDD)Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-3218663144896214273.post-80374313825289870242013-05-23T21:23:00.002+02:002013-05-23T21:24:01.145+02:0022. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUG<h3 class="post-title entry-title" itemprop="name" style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 16px; line-height: 1.1em; margin: 0px; padding: 0px;">
<span style="font-size: 13px; font-weight: normal; line-height: 16.890625px;">Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na dwudzieste pierwsze spotkanie, które odbędzie się 27.05.2013 o godzinie 18:30 na Politechnice Śląskiej w Gliwicach wydział </span><a href="http://www.aei.polsl.pl/" style="color: #336699; font-size: 13px; font-weight: normal; line-height: 16.890625px;" target="_blank">AEI</a><span style="font-size: 13px; font-weight: normal; line-height: 16.890625px;"> </span><span style="color: red; font-size: 13px; font-weight: normal; line-height: 16.890625px;">aula D!</span></h3>
<h3 class="post-title entry-title" itemprop="name" style="color: #333333; font-family: Verdana, Arial, sans-serif; font-size: 16px; line-height: 1.1em; margin: 0px; padding: 0px;">
<br /><div style="color: #222222; font-family: arial, sans-serif; font-size: 13px; line-height: normal;">
<span style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; line-height: 16.890625px;">Temat<span style="font-weight: normal;">:</span></span><span style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-weight: normal;"><span style="line-height: 16.890625px;">Czego mama nigdy nie mówiła Ci na temat testowania automatycznego - problemy, strategie, taktyki, techniki i narzędzia.</span></span><br />
<span style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; line-height: 16.890625px;">Prowadzący</span><span style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-weight: normal; line-height: 16.890625px;">: </span><span style="background-color: white; color: #333333; font-family: Verdana, Arial, sans-serif; font-weight: normal; line-height: 16.890625px;">Sławomir Sobótka</span><span style="background-color: white; color: red; font-family: Verdana, Arial, sans-serif; font-weight: normal;"><span style="line-height: 16.890625px;"><br clear="all" /></span></span><br />
<div style="background-color: white; font-weight: normal;">
<br /></div>
<div>
<span style="background-color: white;">Wstęp<span style="font-weight: normal;">: </span><span style="font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: normal; line-height: 21px;">W ciągu godziny pochylimy się nad typowymi problemami:</span></span></div>
<ul style="border: 0px; font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: normal; line-height: 21px; list-style-position: inside; margin: 15px 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Eksplozja kombinatoryczna przypadków testowych</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Powolne restarty JBossa i żmudne klikanie w ekrany</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Koszt stworzenia i utrzymania testów</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Nieaktualna dokumentacja (nikt jej nie czyta ani nie aktualizuje)</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Problem z komunikacją - brak zrozumienia celów biznesowych, biznes nie rozumie systemu</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Kosztowne w utrzymaniu skrypty do "wyklikania"</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Architektura wspierająca testability (zależności, rozwarstwienie i rygor warstw)</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">Delikatne testy (fragile), Nieczytelne testy, Wolne testy przeglądając mniej lub bardziej znane strategie, taktyki, techniki i narzędzia radzenia sobie z tymi problemami.</span></li>
</ul>
<div style="border: 0px; font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: normal; line-height: 21px; margin-bottom: 18px; outline: 0px; padding: 0px; vertical-align: baseline;">
</div>
<div style="border: 0px; font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: normal; line-height: 21px; margin-bottom: 18px; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="background-color: white;">A przy okazji rozprawimy się z mitami:</span></div>
<ul style="border: 0px; font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; font-size: 14px; font-weight: normal; line-height: 21px; list-style-position: inside; margin: 15px 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">"Konieczność 80+% pokrycia kodu testami" - a może lepiej w 100% przetestować krytyczne 20% kodu?</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">"Testy wpływają korzystanie na design" - tak, pod warunkiem, że skill programisty na po pozwala</span></li>
<li style="border: 0px; font-size: 13px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">"You are not allowed to write a single line of production code until you have written a failing test" - czasem tak, jednak w praktyce: zależy kto, zależy co, zależy jak...</span></li>
</ul>
<div style="background-color: white; font-weight: normal;">
<br /></div>
<div style="background-color: white; font-weight: normal;">
<div style="color: #333333; font-family: Verdana, Arial, sans-serif; line-height: 1.3em; margin: 0px 0px 0.75em;">
<span style="font-weight: bold;">Autor:</span> Programujący architekt aplikacji, trener, konsultant specjalizujący się w technologiach Java i efektywnym wykorzystaniu zdobyczy inżynierii oprogramowania.<br />
<br />
Do jego zainteresowań należy szeroko pojęta inżynieria oprogramowania: architektury wysokowydajnych systemów webowych (w szczególności CqRS), modelowanie (w szczególności DDD), wzorce, zwinne procesy wytwórcze. Hobbystycznie interesuje się psychologią i kognitywistyką.<br />
<br />
Entuzjasta Software Craftsmanship.<br />
<br />
W wolnych chwilach działa w community jako: prezes Stowarzyszenia Software Engineering Professionals Polska, lider lubelskiego Java User Group, publicysta w prasie branżowej i blogger.<br />
<br />
W naprawdę wolnych chwilach umila sobie czas przy pomocy turbo-benzynowego silnika, PS3, audiofilskiego zestawu stereo tudzież Lego (póki co:) Duplo.<br />
<br />
Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br />
<br />
Wstęp wolny!<br />
<br />
Zapraszam wszystkich w imieniu Sławka i Silesia JUG</div>
</div>
</div>
</h3>
Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com1tag:blogger.com,1999:blog-3218663144896214273.post-74169578060931886482012-04-16T14:53:00.003+02:002012-04-16T16:17:09.588+02:0021. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUGŚląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na dwudzieste pierwsze spotkanie, które odbędzie się 19.04.2012 o godzinie 18:30 na Politechnice Śląskiej w Gliwicach wydział <a href="http://www.aei.polsl.pl/">AEI</a> <span style="color: rgb(255, 0, 0);">aula D!</span><br /><br />Temat:<span style="font-weight:bold;">Ścisły przewodnik po aspektach miękkich dla ekspertów IT</span><br />Prowadzący: <span style="font-weight:bold;">Sławomir Sobótka</span><br /><br /><span style="font-weight:bold;">Wstęp:</span> Pierwsza prezentacja będzie poświęcona zagadnieniom "miękkim". Tradycyjnie wplatam "miękkie" wątki w każdą swą prezentację, jednak tym razem będzie to 100% treści (i zero kodu:) Jednak doszyć szybko doprowadzimy do "ścięcia" się białka i wyszukania "twardych" konkretów - co symbolizuje gubernator na pierwszym "slajdzie":)<br /><br /><span style="font-weight:bold;">Autor:</span> Programujący architekt aplikacji, trener, konsultant specjalizujący się w technologiach Java i efektywnym wykorzystaniu zdobyczy inżynierii oprogramowania. <br /><br />Do jego zainteresowań należy szeroko pojęta inżynieria oprogramowania: architektury wysokowydajnych systemów webowych (w szczególności CqRS), modelowanie (w szczególności DDD), wzorce, zwinne procesy wytwórcze. Hobbystycznie interesuje się psychologią i kognitywistyką. <br /><br />Entuzjasta Software Craftsmanship. <br /><br />W wolnych chwilach działa w community jako: prezes Stowarzyszenia Software Engineering Professionals Polska, lider lubelskiego Java User Group, publicysta w prasie branżowej i blogger. <br /><br />W naprawdę wolnych chwilach umila sobie czas przy pomocy turbo-benzynowego silnika, PS3, audiofilskiego zestawu stereo tudzież Lego (póki co:) Duplo. <br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Sławka i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-32700002559218542232011-11-15T15:06:00.004+01:002011-11-15T15:11:55.307+01:0020. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUGŚląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na dziewiętnaste spotkanie, które odbędzie się 16.11.2011 o godzinie 18:00 na Politechnice Śląskiej w Gliwicach wydział <a href="http://www.aei.polsl.pl/">AEI</a> <span style="color: rgb(255, 0, 0);">aula D!</span><br /><br />Temat:<span style="font-weight:bold;"> Wprowadzenie do Clojure i Web App</span><br />Prowadzący: <span style="font-weight:bold;">Hubert Iwaniuk</span><br /><br />Wstęp: Podczas spotkania zbudujemy webowa aplikacje w Clojure.<br /><br /> Rozpoczniemy od zapoznania sie z najciekawszymi cechami Clojure:<br /> - Immutability<br /> - Sequence Library<br /> - Functional Programming<br /><br /> Korzystajac z przykladu batman.js "todo list", zmienimy storage ze<br /> standardowego LocalStorage na RestStorage.<br /> Nastepnie napiszemy prosty server ReST w Clojure, ktory bedzie<br /> backendem naszej aplikacji.<br /><br /> Autor: http://twitter.com/neotyk Clojure zajmuje sie od prawie 2<br /> lat. Ponad rok uzywam Clojure w Open Source, od roku komercyjnie.<br /> Dzieki Clojure udało mi się odnaleźć radość programowania.<br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Huberta i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-5490639782293095432011-11-03T10:26:00.005+01:002011-11-07T13:30:04.882+01:0019. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUGŚląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na dziewiętnaste spotkanie, które odbędzie się 8.11.2011 o godzinie 17:30 na Politechnice Śląskiej w Gliwicach wydział <a href="http://www.aei.polsl.pl/">AEI</a> <span style="color: rgb(255, 0, 0);">aula E!</span><br /><br />Temat: <span style="font-weight:bold;">Spring Data JPA</span><br />Prowadzący: <span style="font-weight:bold;">Jacek Hromiński</span><br /><br />Wstęp:<br />W trakcie spotkania zostanie zaprezentowana biblioteka Spring Data JPA. Na wstępie opiszę czym jest DAO oraz co zyskujemy dzięki wykorzystaniu tego wzorca projektowego. Następnie pokażę w jaki sposób ewoluowała warstwa DAO w ostatnich latach i pokrótce wskażę co w nich było dobrego, a co złego. Głównym elementem prezentacji będzie analiza jednej z nowych zabawek ze stajni SpringSource czyli "Spring Data JPA". Znajdziecie tu nie tylko odpowiedzi na takie standardowe pytania jak:"do czego to służy?" i "jak to odpalić?", ale także pokażę w jaki sposób ta biblioteka może usprawnić proces wytwarzania oprogramowania. Prezentacja będzie wzbogacona o kilka kompilujących się przykładów, które udowodnią, że pisanie DAO nie musi przyprawiać programistów o ból głowy. <br /><br /><span style="font-weight:bold;">Jacek Hromiński</span> - Z Javą EE związany przez ostatnie 2,5 roku. Na co dzień zajmuję się przede wszystkim wytwarzaniem oprogramowania z wykorzystaniem Eclipse, Apache Wicket, Spring 3.0, JBoss 5, Hibernate. Aktualnie przeżywam fascynację wszystkimi "zabawkami" związanymi ze Spring-iem. W zaciszu domowym eksperymentuję wykorzystując przede wszystkim Jetty i swój optymizm, że może wreszcie wszystko się skompiluje jak należy.<br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Jacka i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-66364952603361010172010-10-10T16:37:00.025+02:002010-10-25T00:18:06.095+02:00Android pierwsze krokiDzisiaj postanowiłem bliżej przyjrzeć się technologią mobilnym na pierwszy rzut trafił <a href="http://developer.android.com/">Android</a>. Więc zaczynamy ściągamy najpierw <a href="http://developer.android.com/sdk/index.html">Android SDK</a> potem ściągamy <a href="http://www.eclipse.org/downloads/">Eclipse</a> i instalujemy wtyczkę do Androida o nazwie <a href="http://developer.android.com/sdk/eclipse-adt.html">ADT</a> :<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLY67mZkzySaDktuHmyeEHzrveiCvYz1-zPzTak4yhS2IpGRPmF49iH0UoWMFo32m1sfVCB2L6gmn71xHONquMpLw_6I8AxMaVOBJH91MyQdIxvusemUoodyjPgpCYrWV2D6gbuEG5ue0/s1600/Picture+1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 277px; height: 285px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLY67mZkzySaDktuHmyeEHzrveiCvYz1-zPzTak4yhS2IpGRPmF49iH0UoWMFo32m1sfVCB2L6gmn71xHONquMpLw_6I8AxMaVOBJH91MyQdIxvusemUoodyjPgpCYrWV2D6gbuEG5ue0/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5526550522293230738" border="0"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvCz_s_EM3EDcvRIHjfolMj4kvPu2WAhGoEpc5ZOTiW-ucJj4Y33Op1exEMu9403-l-Ml2WeGZtze_tgb6_vKtOxjvZFTtmBL-NGcNYPUTdtgF5KqNK0oodfmGteMPs9OdcZygFxbwVDI/s1600/Picture+5.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 150px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvCz_s_EM3EDcvRIHjfolMj4kvPu2WAhGoEpc5ZOTiW-ucJj4Y33Op1exEMu9403-l-Ml2WeGZtze_tgb6_vKtOxjvZFTtmBL-NGcNYPUTdtgF5KqNK0oodfmGteMPs9OdcZygFxbwVDI/s320/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5526550867630727186" border="0"></a><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio8KoynPXCNkrQ_9Y3vRqRC73-QO-VhkBQCy_RWNMFR6aqH2FWc7pGAGS_J3GMv4PtpLiUMOWekJaVPwQADgCrQOnPniNs4PqY3blx06uu6z8Rb-yZ5mDmoFC_Ms4DJuYIWaMVMUlNgnw/s1600/Picture+6.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 248px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio8KoynPXCNkrQ_9Y3vRqRC73-QO-VhkBQCy_RWNMFR6aqH2FWc7pGAGS_J3GMv4PtpLiUMOWekJaVPwQADgCrQOnPniNs4PqY3blx06uu6z8Rb-yZ5mDmoFC_Ms4DJuYIWaMVMUlNgnw/s320/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5526551045028804674" border="0"></a>Akceptacja regulaminu:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjw8qpW3mVTybzU25u7yoFC16d0pdV8TaDw9sC3BpIGsLAiFuuO-XQ8fuFkJasNPI0VMnvpVNV3l-sRzsjG8lZ1USmplW48H_Hlp9AUbiE0pV8ZW1QjLozDWSCz5eXprpqUJ_v8S_IBo/s1600/Picture+8.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 247px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFjw8qpW3mVTybzU25u7yoFC16d0pdV8TaDw9sC3BpIGsLAiFuuO-XQ8fuFkJasNPI0VMnvpVNV3l-sRzsjG8lZ1USmplW48H_Hlp9AUbiE0pV8ZW1QjLozDWSCz5eXprpqUJ_v8S_IBo/s320/Picture+8.png" alt="" id="BLOGGER_PHOTO_ID_5526551258764766738" border="0"></a><br /><br /><br />Integracja z Eclipse:<br />Windows -> Preferences<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEika_N99QgA-8xMJfFCH28FiK1b_JRAAUDNGnMxhVpv4AU9uPa4lEAMJR11H354KcmXGsCduUwZ2fqlD4vqdtFH6h1QgKaWNbQAS3o_pK1TU7hj8l6-lyT7WQYTq_Cu9cYinu_f3gXAjd8/s1600/Picture+9.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 273px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEika_N99QgA-8xMJfFCH28FiK1b_JRAAUDNGnMxhVpv4AU9uPa4lEAMJR11H354KcmXGsCduUwZ2fqlD4vqdtFH6h1QgKaWNbQAS3o_pK1TU7hj8l6-lyT7WQYTq_Cu9cYinu_f3gXAjd8/s320/Picture+9.png" alt="" id="BLOGGER_PHOTO_ID_5526551523244577426" border="0"></a>Instalacja Android SDK rozpakujemy zip do jakiegoś katalogu i dodajemy ścieżkę (path) do zmiennych systemowych.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjihJskmIV2UWRkpz_JazWGzsIEFYmv2V-XQYT0eWyB9meLcYtbDA01URW81JYM8CqqesrDQKt0ht9eM0JDpv19C-qFcmKfuYlsX4PK6j2bRVTZNbf59MjNkwoMBgAf04bK5jHZaxRt_fs/s1600/Picture+10.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 284px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjihJskmIV2UWRkpz_JazWGzsIEFYmv2V-XQYT0eWyB9meLcYtbDA01URW81JYM8CqqesrDQKt0ht9eM0JDpv19C-qFcmKfuYlsX4PK6j2bRVTZNbf59MjNkwoMBgAf04bK5jHZaxRt_fs/s320/Picture+10.png" alt="" id="BLOGGER_PHOTO_ID_5526551845676736530" border="0"></a><br />Stworzenie Android Virtual Machine:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ms7oKEq9MFA4SalVK6Yt_Z2Xgi-1A8d93LK6tQ9ZMIR7QyNTIhaA40MOaZS5r7lmkIHi_1VP6V8-wkmohVUvbgw_apSfX7nkGEQGQM8KoJ9UIrYke20rGdCIQouPVk8c-YMnm0x4ovc/s1600/Picture+11.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ms7oKEq9MFA4SalVK6Yt_Z2Xgi-1A8d93LK6tQ9ZMIR7QyNTIhaA40MOaZS5r7lmkIHi_1VP6V8-wkmohVUvbgw_apSfX7nkGEQGQM8KoJ9UIrYke20rGdCIQouPVk8c-YMnm0x4ovc/s320/Picture+11.png" alt="" id="BLOGGER_PHOTO_ID_5526552635121384498" border="0"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglE6HvVIfP72JWl8ehbNVsqqhJi4NKOAHQ5RyzCe_c1gL-Y8H9PjgYfCxsR_1VIGcHUmsw1huR1xp0Cmag-pLZ0hwMviXfEfpSwbxIrrqh3KZf0eFW4QaD-eL4RgQHUjTwhn2pX4D-jWI/s1600/Picture+13.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 160px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglE6HvVIfP72JWl8ehbNVsqqhJi4NKOAHQ5RyzCe_c1gL-Y8H9PjgYfCxsR_1VIGcHUmsw1huR1xp0Cmag-pLZ0hwMviXfEfpSwbxIrrqh3KZf0eFW4QaD-eL4RgQHUjTwhn2pX4D-jWI/s320/Picture+13.png" alt="" id="BLOGGER_PHOTO_ID_5526552953433174274" border="0"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyrBvmX5ERvKE4lI1_NI3ljDLAyxsAfZOM3xelqsrQso9MQfn3ibVmc_LeUItWwXf26SMVzY8n_cJG6Hc6dQg3HEqsy8dNSE2zbgOQWKQ0jZRRDYq_ZOf3wxcJwUdW7zKJE9QxpzOWAbI/s1600/Picture+14.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 187px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyrBvmX5ERvKE4lI1_NI3ljDLAyxsAfZOM3xelqsrQso9MQfn3ibVmc_LeUItWwXf26SMVzY8n_cJG6Hc6dQg3HEqsy8dNSE2zbgOQWKQ0jZRRDYq_ZOf3wxcJwUdW7zKJE9QxpzOWAbI/s320/Picture+14.png" alt="" id="BLOGGER_PHOTO_ID_5526553157443127570" border="0"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjspEAsST_uFR7UyQKxRSQ2Q5WG5skp1H79Gp_YtKauoRmaivolui6mGraNHC1Y4aMOe96PAmurOpXsHk83bowYVf4vyZ35y_L_ItJu8ihkIWV0HSWu7o3GPuK24kMkpsE62u3YsoACifM/s1600/Picture+15.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjspEAsST_uFR7UyQKxRSQ2Q5WG5skp1H79Gp_YtKauoRmaivolui6mGraNHC1Y4aMOe96PAmurOpXsHk83bowYVf4vyZ35y_L_ItJu8ihkIWV0HSWu7o3GPuK24kMkpsE62u3YsoACifM/s320/Picture+15.png" alt="" id="BLOGGER_PHOTO_ID_5526553337706183666" border="0"></a><br />Nowy projekt w Eclipse Android Project :)<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvBVCzJOEMf5x5kGC02qhZkD5JFcGC9XmDSTba0TxKYVbijpeRC6k5T4oOtIhL4ouwIGOwA5hA1Kr47SYALKuZ7AuXe52lYmrsdKES9DqGE4ZGZjcPhoK7Z5FXZV7oxb8RMCCH8uBC1Fs/s1600/Picture+16.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 319px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvBVCzJOEMf5x5kGC02qhZkD5JFcGC9XmDSTba0TxKYVbijpeRC6k5T4oOtIhL4ouwIGOwA5hA1Kr47SYALKuZ7AuXe52lYmrsdKES9DqGE4ZGZjcPhoK7Z5FXZV7oxb8RMCCH8uBC1Fs/s320/Picture+16.png" alt="" id="BLOGGER_PHOTO_ID_5526553547641604146" border="0"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9yT-8r-BC1Gsy9EYZCQnSZHWsYtWcEuXx8qcG9Bv0YaAoWznK0Uq20VLb6qEoRXE8rVt5WsgXV9cT2NMK9_kn8qi1OWTus8CeJhvElU44Nb8QbEovDo2I1Vdll2JDKYNOvBQJtjRR1N8/s1600/Picture+17.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 213px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9yT-8r-BC1Gsy9EYZCQnSZHWsYtWcEuXx8qcG9Bv0YaAoWznK0Uq20VLb6qEoRXE8rVt5WsgXV9cT2NMK9_kn8qi1OWTus8CeJhvElU44Nb8QbEovDo2I1Vdll2JDKYNOvBQJtjRR1N8/s320/Picture+17.png" alt="" id="BLOGGER_PHOTO_ID_5526553723015998850" border="0"><br />Na końcu Finish i gotowe:)</a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOeIwBP2ywtWSibDOhdSJsqVjmgOJFZxGQR6NN0MeEnm1NPu15nWSzwLEavccdo-nKI4gWGyNs6GrNCjJ5pchnB03nJMZwbOpJbKuWbhCr3OiPemcGp_7_KlUI1xsBsXyB7ByxvSVcTU/s1600/Picture+20.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 174px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOeIwBP2ywtWSibDOhdSJsqVjmgOJFZxGQR6NN0MeEnm1NPu15nWSzwLEavccdo-nKI4gWGyNs6GrNCjJ5pchnB03nJMZwbOpJbKuWbhCr3OiPemcGp_7_KlUI1xsBsXyB7ByxvSVcTU/s320/Picture+20.png" alt="" id="BLOGGER_PHOTO_ID_5526554167550580034" border="0"></a><br /><br />No to by było tyle na pierwszy raz, ale coraz bardziej mi się podoba ta platforma:)<br />Uruchomienie Run -> Run as Android application<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirzMdGORcN4fLAmCkIhx-7xLQfXo_mvIUrYdlAeVhnmy1UL3uAFuF94h2hI2KbLn_pqZlJ4Jn1NCOh_Fk-xdzJfXZQkD1jyMEHZP1XS7LtXVqo9DMPweqV_FnKqZVWqPTbaKa2dmDyF0A/s1600/Picture+21.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 225px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirzMdGORcN4fLAmCkIhx-7xLQfXo_mvIUrYdlAeVhnmy1UL3uAFuF94h2hI2KbLn_pqZlJ4Jn1NCOh_Fk-xdzJfXZQkD1jyMEHZP1XS7LtXVqo9DMPweqV_FnKqZVWqPTbaKa2dmDyF0A/s320/Picture+21.png" alt="" id="BLOGGER_PHOTO_ID_5526554540509825442" border="0"></a><br />No i na koniec widzimy piękną konsole z naszą wiadomością.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE8M7ZhoUR5qkok5KKaBEh93ecQ1Dd6ybuuKI3z20I2F6rwh7peZrBXQ7He1-0F7DfXeEbjMffvMAPPmpcFpn8T25FxzhnGjEjazILCe_ZP9aXHeHiVhWcUMzkk10Qpf6GrJQ7x5DGYEI/s1600/Picture+22.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 223px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE8M7ZhoUR5qkok5KKaBEh93ecQ1Dd6ybuuKI3z20I2F6rwh7peZrBXQ7He1-0F7DfXeEbjMffvMAPPmpcFpn8T25FxzhnGjEjazILCe_ZP9aXHeHiVhWcUMzkk10Qpf6GrJQ7x5DGYEI/s320/Picture+22.png" alt="" id="BLOGGER_PHOTO_ID_5526554705712992546" border="0"></a>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com5tag:blogger.com,1999:blog-3218663144896214273.post-31590828471496344092010-07-11T23:01:00.003+02:002010-07-11T23:27:11.861+02:0018. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUGŚląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na czternaste spotkanie, które odbędzie się 13.07.2010 o godzinie 18:00 w COIG (Centralny Ośrodek Informatyki Górnictwa S.A.) w sali 136 na pierwszym piętrze, ul.Mikołowska 100 w Katowicach.<br /><br />Temat:<span style="font-weight:bold;">Wprowadzenie do języka Groovy.</span><br />Prowadzący: <span style="font-weight:bold;">Adrian Pawlik</span><br /><br />Wstęp:<br />Na prezentacji przedstawiony zostanie język Groovy, czyli dynamiczny, zwinny język programowania uruchamiany na maszynie wirtualnej Java. Omówiony zostanie między innymi sposób integracji z Javą, różnice w stosunku do Javy, konstrukcje, obsługa list oraz map, domknięcia, meta programowanie i dynamiczne typowanie. Spotkanie kierowane jest głównie do osób, które nie miały styczności z tym językiem lub chcą uporządkować podstawową wiedzę. Język omawiany będzie na podstawie licznych fragmentów kodu.<br /><br /><span style="font-weight:bold;">Adrian Pawlik</span> - obecnie pracuję na stanowisku starszego programisty java w firmie IDEM (www.id-em.pl). Moje zainteresowania zawodowe to bardzo szeroko pojęta technologia JEE. Aktualnie szczególnie zajmują mnie dynamiczne języki programowania, tworzenie aplikacji w technologiach jsf2, jpa2, spring3 oraz zagadnienia związanie z integracją.<br /><br />Do rozlosowania będzie wejściówka na <a href="http://devoxx.com/display/Devoxx2K10/Home">DEVOXX</a>.<br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Adriana i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-62330332769583663432010-06-29T16:19:00.002+02:002010-06-29T16:36:04.688+02:0017. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUGŚląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na siedemnaste spotkanie, które odbędzie się 29.06.2010 o godzinie 18:00 w Auli D Wydziału Automatyki, Elektroniki i Informatyki Politechniki Śląskiej, w Gliwicach ul. Akademicka 2a.<br /><br /><span style="font-weight:bold;">Temat</span>: Spring Roo, jako narzędzie do błyskawicznego tworzenia aplikacji<br /><span style="font-weight:bold;">Prowadzący</span>: Łukasz Bachman<br /><br />Łukasz opowie nam o projekcie Roo, jego możliwościach i funkcjach. Osobnym tematem będzie integracja z GWT i innymi technologiami. Ma zamiar wspomnieć trochę o konstrukcji samego projektu, ale skupi się bardziej na tym, co zyskuje developer. Całość zostanie poparta przykładami użycia prezentowanymi "live".<br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Łukasza i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-73886594210609923212010-05-20T18:58:00.004+02:002010-05-20T19:19:21.805+02:00Screencast -Grails Tomcat Netbeans 6.8 szukanie memory leak w aplikacji.od dłuższego czasu trapi mnie wyciek pamięci w aplikacji grailsowej, którego nie mogłem zlokalizować:/ ostatnio <a href="http://blog.aplikacja.info/">Dariusz Cieślak</a> w komentarzu podał mi linka do <a href="http://www.khelekore.org/jmp/screenshot.html" rel="nofollow">Java Memory Profiler (JMP)</a> , ale jakoś nie udało mi się go pod mackiem uruchomić (nie chciało mi się bawić, ze ścieżkami :/). Postanowiłem więc uruchomić Tomcata jako serwer i podpiąć się pod niego przez Netabeans profilerem, jak to wyszło można zobaczyć tutaj:<br /><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' ></param><param name='flashvars' value='i=72088' ></param><param name='allowFullScreen' value='true' ></param><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=72088' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer' ></embed></object><br />Podczas prezentacji pojawiły się jakieś wyjątki w konsoli i to pomogło mi wykryć wycieki :)<br /><textarea name="code" class="java"><br />SEVERE: A web application registered the JBDC driver [org.hsqldb.jdbcDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-2] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-3] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-4] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-5] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-6] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-7] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-8] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-9] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads<br />SEVERE: A web application appears to have started a thread named [quartzScheduler_Worker-10] but has failed to stop it. This is very likely to create a memory leak.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap<br />SEVERE: A web application created a ThreadLocal with key of type [null] (value [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory$2@55dd7f]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap<br />SEVERE: A web application created a ThreadLocal with key of type [org.codehaus.groovy.reflection.ClassInfo.ThreadLocalMapHandler] (value [org.codehaus.groovy.reflection.ClassInfo$ThreadLocalMapHandler@3127f6]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@d5d9cc]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.<br />2010-05-20 16:06:28 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap<br />SEVERE: A web application created a ThreadLocal with key of type [org.codehaus.groovy.runtime.GroovyCategorySupport.MyThreadLocal] (value [org.codehaus.groovy.runtime.GroovyCategorySupport$MyThreadLocal@6e98d7]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@f46e5a]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.<br />log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.<br /></textarea><br />I co się okazało, że po przejśćiu na nowszą wersję grailsów jedna z wtyczek a dokładnie <a href="http://grails.org/plugin/quartz">quartz</a> nie była odpowiednia do wersji grailsów. No więc spędziłem trochę czasu z profilerem, a rozwiązanie polegało na zmianie numeru wersji wtyczki, ale bez tych logów było by cieżko, a co dziwne sam tomcat w normalnym trybie tego nie logował:/Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com3tag:blogger.com,1999:blog-3218663144896214273.post-79675543935936721002010-05-17T12:46:00.003+02:002010-05-18T12:15:35.291+02:0015. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUG<span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;"><div><br /></div><div><span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; line-height: normal; "><b><span class="Apple-style-span" style="color:#FF0000;"><span class="Apple-style-span" style="font-size: large;">TERMIN PRELEKCJI ZMIENIONY NA 25.05.2010</span></span></b></span></div><div><span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: normal; "></span> </div>Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na piętnaste spotkanie, które odbędzie się 18.05.2010<span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; font-size: 16px; line-height: normal; "><span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;">(</span><span class="Apple-style-span" style="line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;"><span class="Apple-style-span" style="color:#FF0000;">25.05.2010</span></span><span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;">)</span></span> o godzinie 18:00 w COIG </span><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;">(Centralny Ośrodek Informatyki Górnictwa S.A.) w sali 136 na pierwszym piętrze, ul.Mikołowska 100 w Katowicach.</span><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;color:#333333;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;color:#333333;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;">Temat: <b>GWT + Spring z wykorzystaniem architektury MVP i wzorca Command do komunikacji klient - serwer</b></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;color:#333333;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;">Prowadzący:<b> </b><span class="Apple-style-span" style="color: rgb(0, 0, 0); line-height: normal; border-collapse: collapse; font-family:arial, sans-serif;"><b>Michał Sędzielewski</b></span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;">Wstęp:</span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><span class="Apple-style-span" style="border-collapse: separate; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; text-align: left; ">GWT to zbiór narzędzi pozwalających web developerom na tworzenie i utrzymywanie zaawansowanych aplikacji Javascript pisanych w Java.<br /></p><div><br /></div></span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;">Celem prezentacji będzie zaprezentowanie wykorzystania wzorca MVP do stworzenia testowalnej i łatwo rozszerzalnej aplikacji w oparciu o GWT, Spring Framework oraz Google Gin. </span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;">Michał Sędzielewski - s<span class="Apple-style-span" style="border-collapse: separate; ">tudent 4 roku Makrokierunku, Wydział AEI Politechniki Śląskiej, Software Developer w firmie Future Processing.</span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size:13px;"><span class="Apple-style-span" style=" color: rgb(51, 51, 51); line-height: 16px; font-family:Verdana, Arial, sans-serif;"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "><span class="Apple-style-span" style=" ;font-family:arial, sans-serif;font-size:13px;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><span class="Apple-style-span" style="border-collapse: separate; line-height: 16px; font-family:Verdana, Arial, sans-serif;">Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License</span></span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "><br /></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.3em; "><span class="Apple-style-span" style=" ;font-family:arial, sans-serif;font-size:13px;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><span class="Apple-style-span" style="border-collapse: separate; line-height: 16px; font-family:Verdana, Arial, sans-serif;">Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Michała i Silesia JUG</span></span></span></div></span></span></span></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-23037526475005488672010-05-14T14:50:00.006+02:002010-05-14T15:22:31.597+02:00Tomcat - Diagnostics - Web application has caused a memory leak<div style="text-align: left;"><span class="Apple-style-span" style="font-family:Helvetica, serif;"><span class="Apple-style-span" style="font-size: small;">Dzisiaj po załadowaniu aplikacji grailsowej do Tomcata, z ciekawośći postanowiłem kliknąć w konsoli managera (http://192.168.0.99:8080/manager/html/) w sekcji "Diagnostics" -> "Find leaks"</span></span></div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span class="Apple-style-span" style=" ;font-family:Georgia, serif;font-size:16px;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKtybYCWYQK0Eo1iaZ8jlMXA-f06OHlErQFSrkXtRuvYObsUB54KLgD33jmXmJSczBaRp3vxnzHCEWghIOCjUz5MSBtjYmK3jwubIpDKDjyR1CTN1_ruRssf0Mi42knzmCzD4hfZ5lU0/s1600/Picture+5.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKtybYCWYQK0Eo1iaZ8jlMXA-f06OHlErQFSrkXtRuvYObsUB54KLgD33jmXmJSczBaRp3vxnzHCEWghIOCjUz5MSBtjYmK3jwubIpDKDjyR1CTN1_ruRssf0Mi42knzmCzD4hfZ5lU0/s320/Picture+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5471110519428591826" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 42px; " /></a></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica">ku mojemu zaskoczeniu dostałem coś takiego w "Message":</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span class="Apple-style-span" style=" ;font-family:sans-serif, Tahoma, Arial;font-size:medium;"></span></p><pre>The following web applications were stopped (reloaded, undeployed), but their</pre><pre>classes from previous runs are still loaded in memory, thus causing a memory</pre><pre>leak (use a profiler to confirm): </pre><pre>/SimpleProject</pre><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh211qhMtLLFdc2U6QkiCNZIRIxLKwtQxWxuE3phyH5W8EVObBqIIbzm1LRHVCd5ktUPFs61wmT_orgwiUK2figvxfh9v98fq3xKns73XeeUI8pFo75Q_QHRI9pgLz96opdgWxOi5UyOtk/s1600/Picture+6.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh211qhMtLLFdc2U6QkiCNZIRIxLKwtQxWxuE3phyH5W8EVObBqIIbzm1LRHVCd5ktUPFs61wmT_orgwiUK2figvxfh9v98fq3xKns73XeeUI8pFo75Q_QHRI9pgLz96opdgWxOi5UyOtk/s320/Picture+6.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5471111095342886882" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 168px; " /></a></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica">i niestety jestem teraz w kropce:/ może ktoś zna jakiś dobry profiler do grailsów, bądź jakiś inny sposób na znalezienie odpowiedzi co jest nie tak ?</p></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com2tag:blogger.com,1999:blog-3218663144896214273.post-59485713797604659872010-04-25T18:49:00.009+02:002010-05-01T19:46:45.180+02:0014. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUG<span class="Apple-style-span" style=" line-height: 16px; font-family:Verdana, Arial, sans-serif;font-size:13px;">Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na czternaste spotkanie, które odbędzie się 4.05.2010 o godzinie 18:30 w COIG (Centralny Ośrodek Informatyki Górnictwa S.A.) w sali 136 na pierwszym piętrze, ul.Mikołowska 100 w Katowicach.</span><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;"><span class="Apple-style-span" style=" line-height: normal; border-collapse: collapse; font-family:arial, sans-serif;">Temat: <b>Android</b><br />Prowadzący: <b>Krzysztof Wolny</b><br /><br />Wprowadzenie: Android to system operacyjny dla smartfonów (i innych<br />urządzeń) opracowany przez Google i udostępniany w ramach Open Handset<br />Alliance pod koniec 2007 roku. Pozwala na pisanie aplikacji w języku<br />Java, posiada otwarty kod, pozwala na łatwą integrację z urządzeniem i<br />usługami Google.<br /><br />Cel: Prezentacja ma na celu wprowadzenie uczestników w świat Androida,<br />przedstawienie jego filozofii działania, możliwości i cech.<br />Podparte ono zostanie prostymi przykładami, tak by dać przedsmak tego<br />na co pozwala Android.<br /><br /><b>Krzysztof Wolny</b> - z powołania bazodanowiec, z zawodu<br />projektant/programista. Na co dzień pracujący w firmie ComArch SA nad<br />projektami w technologii JEE, po godzinach pasjonat Androida, baz<br />danych, usług Google, standardów (szczególnie tych otwartych).<br />Założyciel Polish Android Group.<br /><br />Po prezentacji przewidziany jest czas na dyskusje i "zerowe" spotkanie<br />członków Polish Android Group :)</span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><span class="Apple-style-span" style="border-collapse: separate; line-height: 16px; font-family:Verdana, Arial, sans-serif;">Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License</span></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style=" line-height: 16px;font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><span class="Apple-style-span" style="border-collapse: separate; line-height: 16px; font-family:Verdana, Arial, sans-serif;"><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;"><span class="Apple-style-span" style="font-size: -webkit-xxx-large; line-height: 16px;"><span class="Apple-style-span" style="font-family:Helvetica, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 12px; line-height: normal;"><b><br /></b></span></span></span></span></p>Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Krzysztofa i Silesia JUG</span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size:13px;"><br /></span></span></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-15851997775690603612010-04-14T10:33:00.003+02:002010-04-14T10:42:34.428+02:0013. Spotkanie Śląskiej Grupy Użytkowników Technologii Java - Silesia JUG<span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 13px; line-height: 16px; "><span class="Apple-style-span" style="color:#333333;">Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na trzynaste spotkanie, które odbędzie się 15.04.2010 o godzinie 18:00 na Politechnice Śląskiej wydział AEI ul. Akademicka 2 aula E.<br /></span></span><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"><span class="Apple-style-span" style="color:#333333;"><br /></span></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"><span class="Apple-style-span" style="color:#333333;">Temat: </span><span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: normal; border-collapse: collapse; "><b><span class="Apple-style-span" style="color:#333333;">StormGrind</span></b></span><span class="Apple-style-span" style="color:#333333;"><br />Prowadzący: </span><span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: normal; border-collapse: collapse; font-weight: bold; white-space: nowrap; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="color:#333333;">Marek Goldmann</span></span></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"><span class="Apple-style-span" style="color:#333333;"><br /></span></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"><span class="Apple-style-span" style="color:#333333;">Wprowadzenie:</span></span></span></div><div><span class="Apple-style-span" style="font-family:Verdana, Arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="font-size: 13px; line-height: 16px;"><span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: normal; border-collapse: collapse; "><span class="Apple-style-span" style="color:#333333;">StormGrind to pomysł JBossa na cloud computing. To zbiór projektów pomagających w uruchamianiu aplikacji w chmurach, ale nie tylko – to również projekty pomagające w tworzeniu rozwiązań IaaS oraz PaaS w twojej firmie.<br /><br />Prezentacja ma na celu wprowadzenie do niektórych projektów spod parasola StormGrind takich jak CirrAS, BoxGrinder czy CoolingTower. Przewidziane jest demo wybranych projektów.<br /><br /></span><b><span class="Apple-style-span" style="color:#333333;">UWAGA! W trakcie prezentacji zostanie rozlosowana darmowa wejściówka na konferencję GeeCON 2010!</span></b><span class="Apple-style-span" style="color:#333333;"><br /><br /></span><b><span class="Apple-style-span" style="color:#333333;">Marek Goldmann</span></b><span class="Apple-style-span" style="color:#333333;">, pasjonat otwartych technologii i standardów, entuzjasta projektów na nich opartych. Żywo zainteresowany tematem wirtualizacji i cloud computingu. Software Engineer pracujący nad wieloma projektami o tematyce cloud computingu w firmie JBoss by Red Hat. Marek zaangażowany jest również w kreślenie nowych kierunków rozwoju tematu Cloud Computing w firmie JBoss.</span></span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"><span class="Apple-style-span" style="color:#333333;"><br /></span></span></span></div><div><span class="Apple-style-span" style="font-family:arial, sans-serif;font-size:100%;"><span class="Apple-style-span" style="border-collapse: collapse; font-size: 13px;"><span class="Apple-style-span" style="border-collapse: separate; font-family: Verdana, Arial, sans-serif; line-height: 16px; "><span class="Apple-style-span" style="color:#333333;">Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br />Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br /></span><span style="font-weight: bold; "><span class="Apple-style-span" style="color:#333333;">Wstęp wolny!</span></span><span class="Apple-style-span" style="color:#333333;"><br /><br />Zapraszam wszystkich w imieniu Marka i Silesia JUG.</span></span></span></span></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-588141287578523842009-11-16T21:54:00.004+01:002009-11-16T23:13:00.229+01:0012. Spotkanie Śląskiej Grupy Użytkowników Technologii Java ( Silesia JUG, OSUM )Śląska Grupa Użytkowników Technologii Java (Silesia JUG i OSUM) serdecznie zaprasza wszystkich na dwunaste spotkanie, które odbędzie się 19.11.2009 o godzinie 18:30 na Politechnice Śląskiej wydział AEI ul. Akademicka 2 aula B.<br /><br />Temat: <span style="font-weight: bold;">Flex-Blaze DS-Spring</span><br />Prowadzący: <span style="font-weight: bold;">Zbyszko Pałka<br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9XmIiWsibzfXyOgYHhFAtUUNTttYU6VyCvB2L4tst5Ta-VvrijIYhCbRXd1tcBUKO4d6sAPe1UwLXe99MAobbfJArsASrslps8IHm_CNZl_7lW3qJAMqp8Z8M6O8ASltaJcr6W_uZH0/s1600/plakat_logo_Marek_Piowczyk+%281%29.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9XmIiWsibzfXyOgYHhFAtUUNTttYU6VyCvB2L4tst5Ta-VvrijIYhCbRXd1tcBUKO4d6sAPe1UwLXe99MAobbfJArsASrslps8IHm_CNZl_7lW3qJAMqp8Z8M6O8ASltaJcr6W_uZH0/s320/plakat_logo_Marek_Piowczyk+%281%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5404827080771335186" border="0" /></a><br />Plan wykadu:<br />1. Wprowadzenie do RIA<br /><br />2. Warstwa serwerowa z użyciem "Spring BlazeDS Integration"<br /> - konfiguracja<br /> - warstwa DAO<br /> - warstwa serwisowa<br /><br />3. Podstawy Flex'a<br /><br />4. Warstwa prezentacji z użyciem PureMVC i Fabrication<br /> - wzorzec proxy<br /> - wzorzec polecenie<br /> - wzorzec mediator<br /> - notyfikacje<br /><br />5. Przykładowe rozwiązanie<br /> - architektura<br /> - realizacja<br /><br />6. Uwagi końcowe<br /><span style="font-weight: bold;"><span style="font-weight: bold;"><br /></span></span>Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut).<br />Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br />oraz książki.<br /><br /><span style="font-weight: bold;">Wstęp wolny!</span><br /><br />Zapraszam wszystkich w imieniu Zbyszka i Silesia JUG.Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-47487145473659439322009-07-01T11:04:00.006+02:002009-11-22T19:33:23.521+01:00JAVArsovia 2009 - Mule ESBW tym roku 4 lipca podczas <a href="http://javarsovia.mocna-kawa.com/index.php?option=com_content&task=view&id=108&Itemid=">JAVArsovia 2009</a> w Warszawie będę miał przyjemność przedstawić temat "<a href="http://www.mulesource.org/display/MULE2INTRO/Examples">Mule</a> - Open Source ESB - SOA and Integration Platform (czyli jak to wszystko razem działa)" w którym przybliżę słuchaczom temat architektury SOA (Service Oriented Architecture) i wykorzystanie w niej ESB (Enterprise Service Bus) w konkretnej implementacji Mule ESB.<br />Postaram się przedstawić większość możliwości oferowanych przez Mule ESB, jak również opowiedzieć o przykładach wykorzystania ESB w codziennym życiu. Opowiem też o plusach i minusach stosowania ESB w firmach i dlaczego co niektóre firmy uważają ESB za ich tajną broń.<br />Podczas prezentacji zbuduję środowisko developerskie<br />obsługujące magazyn, składające się z:<br />- prostej aplikacji umożliwiającej zapisywanie danych do pliku<br />- mule ESB odpowiedzialnego za rutowanie, transformacje, obsługę, zabezpieczenie wiadomości przechodzących przez ESB (będzie można zobaczyć połączeni z bazą danych, wysyłanie e-maili itd.)<br />- stworzenie prostej aplikacji webowej w Grails do wyświetlanie/modyfikowania danych dla użytkownika końcowego.<br />Będzie można zobaczyć Javę jak i Groovy(Grails) w akcji.<br />Jeśli wystarczy czasu może uda się też pokazać nowość w Mule(Latest Developer Milestone Build: Mule 3.0 Milestone 1) który udostępnia mechanizm hot-deployment (czyli podmianę kodu bez restartowania ESB) .<br /><br /><br /><span style="font-weight: bold;">Serdecznie zapraszam 04.07.2009 slot: 11:00 - 12:00, ścieżka 2, Aula (sala 102B)</span><div><b><br /></b></div><div><b>Aktualizacja: prezentacja jest dostępna <a href="http://sites.google.com/site/download1982wqewqewq/home/LipkaLukasz_MULE_ESB_javarsowia2009.pdf">tutaj</a>. </b></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com3tag:blogger.com,1999:blog-3218663144896214273.post-76363257716308605452009-06-24T18:28:00.008+02:002009-06-29T19:24:53.920+02:00Eclipse Galileo is Here:) CTRL + SHIFT + L<div style="text-align: left;">Tak naprawdę to wpis miał dotyczyć tylko jednej kombinacji w <a href="http://www.eclipse.org/">Eclipse</a> a mianowicie CTRL (w macu jabłuszko) + SHIFT + L która ciągle mi z głowy jakoś wylatuje, a zawiera wszystkie potrzebne skróty klawiszowe w Eclipse.</div><div>Ale, że przy okazji mamy dzisiaj kolejne wydanie Eclipse o nazwie <a href="http://www.eclipse.org/galileo/">Galileo</a> przetestuje czy tam ten skrót też działa:)</div><div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjzmHRi8JQorSK7UgALOEIFkJIjFsKLx7KBqh2-xGxmmwOKgx3rIRwNg5eWKa3UlMEalxMKKSHdEjGAOeBoAKag4ZVdhGhyphenhypheneA6Tx94e_ADusL5sg8s6BNRoLj6IQoKuDAL35ewkkxgV0g/s1600-h/Picture+18.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjzmHRi8JQorSK7UgALOEIFkJIjFsKLx7KBqh2-xGxmmwOKgx3rIRwNg5eWKa3UlMEalxMKKSHdEjGAOeBoAKag4ZVdhGhyphenhypheneA6Tx94e_ADusL5sg8s6BNRoLj6IQoKuDAL35ewkkxgV0g/s320/Picture+18.png" alt="" id="BLOGGER_PHOTO_ID_5350935695128318386" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 182px;" border="0" /></a><div>No jak widać na moim Mac OS 10.4.11 nie udało mi się uruchomić nowego Eclipse:/</div><div>Więc zostaje stara wysłużona wersja :) przynajmniej do zmiany systemu:)</div><div><br /></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFp8_s2QJVlhyphenhyphenm4o7NEGt28thvZIDs0BSdonXc_saF55T2GaQfP5Fo9pPy7UhV697nd4teN6azulhNNRiSlg9sxM7BLfRRoCQLF4zx2Vg-2a7xI-au73Nj9ehdyrgN_6V-8zxHUlmHYOo/s1600-h/Picture+19.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFp8_s2QJVlhyphenhyphenm4o7NEGt28thvZIDs0BSdonXc_saF55T2GaQfP5Fo9pPy7UhV697nd4teN6azulhNNRiSlg9sxM7BLfRRoCQLF4zx2Vg-2a7xI-au73Nj9ehdyrgN_6V-8zxHUlmHYOo/s320/Picture+19.png" alt="" id="BLOGGER_PHOTO_ID_5350936388783671010" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 282px;" border="0" /></a></div><div><b>CTRL+SHIFT+L </b> :)</div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-75909342969539127302009-06-20T23:14:00.003+02:002009-06-20T23:23:03.795+02:0011. Spotkanie Śląskiej Grupy Użytkowników Technologii Java ( Silesia JUG )Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na jedenaste spotkanie, które odbędzie się 30.06.2009 o godzinie 18:30 w COIG (Centralny Ośrodek Informatyki Górnictwa S.A.) w sali 136 na pierwszym piętrze, ul.Mikołowska 100 w Katowicach.<br /><br />Temat: <span style="font-weight: bold;">JBoss Cloud<br /></span>Prowadzący: <span style="font-weight: bold;">Marek Goldmann<span style="font-weight: bold;"><br /><br /></span></span>Info:<span style="font-weight: bold;"><span style="font-weight: bold;"><br /><span style="font-weight: bold;"></span></span></span>JBoss Cloud to projekt mający na celu stworzenie gotowego do użycia klastra serwerów aplikacji JBoss AS. Za pomocą JBoss Cloud można uruchomić klaster na wybranej przez siebie platformie wirtualizacji: np. Xen, VMware, EC2.<br /><br />JBoss Cloud składa się z kilku obrazów systemów; <a href="http://m.in/" target="_blank">m.in</a>.: front-end (zapewniający rozkładanie obciążenia), back-end (faktyczny serwer JBoss AS), które mogą zostać uruchomione w dowolnej ilości. Obrazy można tworzyć samemu.<br /><br />Prezentacja ma na celu wprowadzenie do projektu JBoss Cloud, pokaże w jaki sposób można wykorzystać go do swoich potrzeb. Na koniec przedstawione zostaną możliwości dostosowywania JBoss Cloud.<br /><br />UWAGA! W trakcie prezentacji zostaną rozlosowane koszulki JBoss’a!<br /><br />Jeżeli będzie zainteresowanie ze strony słuchaczy zostanie również przedstawiona krótka relacja z konferencji JavaOne w San Francsico.<span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;"></span><br /><br /></span></span><span style="color: rgb(0, 0, 0);" ><span style="font-weight: bold;">Marek Goldmann</span>, pasjonat otwartych technologii i standardów, entuzjasta projektów na nich opartych. Miłośnik wirtualizacji. Software Engineer pracujący nad projektem JBoss Cloud w firmie JBoss by Red Hat. Marek zaangażowany jest również w kreślenie nowych kierunków rozwoju projektu jak i Cloud Computing w firmie JBoss.</span><br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Marka i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-3860068062559052102009-06-10T14:32:00.000+02:002009-06-11T12:47:12.981+02:00Log4j i ChainsawPewno każdy z was musiał kiedyś czytać logi czy to swoje czy odziedziczone w spadku:) dzisiaj postanowiłem przyjrzeć się narzędziu <a href="http://logging.apache.org/chainsaw/index.html">Chainsaw</a> które umożliwia monitorowanie logów.<br />A więc zaczynamy, ściągamy program Chainsaw <a href="http://logging.apache.org/chainsaw/download.html">tutaj</a>.<br />No i zaczynamy zabawę (obraz który dostajemy po uruchomieniu programu).<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicfv445ESpV7rAYA2sYaGU0IoFxKmGrxo480di8rEdMtAIOtLA9mZLjhs07XZuqphj8aqxW88HgVmfPP-UsbcFWGRoPE4ioq2FpPctldMZgWe2KmTTWvjrpRFil17L1Bi7LVAndih3tg8/s1600-h/Picture+10.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 261px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicfv445ESpV7rAYA2sYaGU0IoFxKmGrxo480di8rEdMtAIOtLA9mZLjhs07XZuqphj8aqxW88HgVmfPP-UsbcFWGRoPE4ioq2FpPctldMZgWe2KmTTWvjrpRFil17L1Bi7LVAndih3tg8/s320/Picture+10.png" alt="" id="BLOGGER_PHOTO_ID_5345277435490364098" border="0" /></a>Wybieramy "Let me define Receivers manually" i klikamy "OK".<br />Teraz dobrze by było żeby podłączyć naszego Chainsaw do jakiegoś zewnętrznego repozytorium logów np. do logów z serwera <a href="http://www.mulesource.org/display/COMMUNITY/Home">mule</a>. Więc idziemy teraz do pliku $MULE_HOME/conf/log4j.properties i dodajemy możliwość podłączenia się przez SocketHubAppender do log4j naszego lokalnego (lub zewnętrznego) mule (zmienione linie to 02,09,10).<br /><textarea name="code" class="java"><br /># Default log level<br />log4j.rootCategory=INFO, console, sockethub<br /><br />log4j.appender.console=org.apache.log4j.ConsoleAppender<br />log4j.appender.console.layout=org.apache.log4j.PatternLayout<br />log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] %c: %m%n<br /><br /><br />log4j.appender.sockethub=org.apache.log4j.net.SocketHubAppender<br />log4j.appender.sockethub.port=9999<br /><br />################################################<br /># You can set custom log levels per-package here<br />################################################<br /><br /># Apache Commons tend to make a lot of noise which can clutter the log.<br />log4j.logger.org.apache=WARN<br /><br /># Shuts up some innocuous messages if using the JBPM transport<br />log4j.logger.org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog=ERROR<br /><br /># Reduce startup noise<br />log4j.logger.org.springframework.beans.factory=WARN<br /><br /># Mule classes<br />log4j.logger.org.mule=INFO<br />log4j.logger.com.mulesource=INFO<br /><br /># Your custom classes<br />log4j.logger.com.mycompany=DEBUG<br /></textarea><br />Teraz uruchamiamy mule i sprawdzamy czy faktycznie port 9999 działa<br /><textarea name="code" class="java"><br />lukasz-lipkas-computer:~ lipka$ telnet 127.0.0.1 9999<br />Trying 127.0.0.1...<br />Connected to localhost.<br />Escape character is '^]'.<br />??<br /></textarea><br />Teraz podłączamy nasz program:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ7mXukH5Ob-CfA_3LDET5HNEbVjA_E9ByZ3TvnHo8GP4fbNZdtFyL5tCdbSXnpZdeWr2gQ_jFb123ufDtM-7INjsDrc9GynPvXCVS1h15bM5p4048Orvhud_23-0t1VUmFnd8qfp_Hy4/s1600-h/Picture+14.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 309px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ7mXukH5Ob-CfA_3LDET5HNEbVjA_E9ByZ3TvnHo8GP4fbNZdtFyL5tCdbSXnpZdeWr2gQ_jFb123ufDtM-7INjsDrc9GynPvXCVS1h15bM5p4048Orvhud_23-0t1VUmFnd8qfp_Hy4/s320/Picture+14.png" alt="" id="BLOGGER_PHOTO_ID_5345295177573602258" border="0" /></a>I teraz już tylko zostaje podziwianie logów:)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUpC10rtoHXgWroQ8MU_6yFIzWbXNh0DUgCH3pdHviMBnpR0NV-fWCZMh0LGxBZyL5yxnSOoY2iE9YVQo0iKo5_ZdDwRYK1qbkIf3UlsG-WLiQIlKuCm2_371RL3_UOkJbIEJReiJlUEw/s1600-h/Picture+15.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUpC10rtoHXgWroQ8MU_6yFIzWbXNh0DUgCH3pdHviMBnpR0NV-fWCZMh0LGxBZyL5yxnSOoY2iE9YVQo0iKo5_ZdDwRYK1qbkIf3UlsG-WLiQIlKuCm2_371RL3_UOkJbIEJReiJlUEw/s320/Picture+15.png" alt="" id="BLOGGER_PHOTO_ID_5345295533212043442" border="0" /></a>Rzecz która mi się najbardziej podoba to możliwość przeglądania logów według poszczególnych poziomów takich jak:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7VNwO4yeMCh0e_mjO5VMf7AT5sludGBG6vNCRxg5AtFaFePcHaW1uzjHqZZ1XtMFPG8P_2Sxo-ood_QBJ-SPVuSvtA_SeC79MndC7hZqAj179_5GvCqu5mrggmHT6vJVKRdexK9X4hFo/s1600-h/Picture+16.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 91px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7VNwO4yeMCh0e_mjO5VMf7AT5sludGBG6vNCRxg5AtFaFePcHaW1uzjHqZZ1XtMFPG8P_2Sxo-ood_QBJ-SPVuSvtA_SeC79MndC7hZqAj179_5GvCqu5mrggmHT6vJVKRdexK9X4hFo/s320/Picture+16.png" alt="" id="BLOGGER_PHOTO_ID_5345296766510762130" border="0" /></a><br />Dla mnie największe plusy Chainsaw to:<br /><ul><li>możliwość logowania na zewnętrzne IP i wizualne odczytywanie logów</li><li>możliwość podłączenia wielu logów z różnych maszyn (programów)</li><li>graficzny interfejs</li></ul>Alternatywa:<br />ssh na zewnętrzną maszynę i potem przejść do katalogu gdzie są logi i komenda:<br /><textarea name="code" class="java"><br />lukasz-lipkas-computer:~/Library/mule-2.2.1/logs lipka$ cat mule.log|grep INFO<br />INFO 2009-05-18 19:41:34,134 [jdbcConnector.receiver.16] org.mule.DefaultExceptionStrategy: There is no current event available, routing Null message with the exception<br />INFO 2009-05-18 19:41:34,254 [jdbcConnector.receiver.16] org.mule.DefaultExceptionStrategy: There is no current event available, routing Null message with the exception<br /></textarea><br />A dlaczego taki temat ? Jest to krótkie streszczenie rozdziały ósmego z książki <a href="http://www.manning.com/dossot/">Mule in Action</a>.<br />A to mój mały wkład w poprawienie finalnej wersji książki <a href="http://www.manning-sandbox.com/thread.jspa?threadID=32410&tstart=0">tutaj</a> i <a href="http://www.manning-sandbox.com/thread.jspa?threadID=32451&tstart=0">tutaj</a>. Po za tym 4 lipca na <a href="http://javarsovia.mocna-kawa.com/index.php?option=com_content&task=blogcategory&id=1&Itemid=59">JAVArsowia</a> będę miał przyjemność przedstawić temat <strong style="font-weight: normal;"><a href="http://javarsovia.mocna-kawa.com/index.php?option=com_content&task=view&id=108&Itemid=">Mule - Open Source ESB - SOA and Integration Platform (czyli jak to wszystko razem działa)</a> zapraszam wszystkich serdecznie.</strong>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com1tag:blogger.com,1999:blog-3218663144896214273.post-51033397709677749362009-05-28T14:14:00.000+02:002009-05-31T14:39:42.703+02:00Java i Twitter wysyłanie wiadomościOd niedawna posiadam konto na <a href="http://twitter.com/">Twitter</a> lukaszlipka i dzisiaj postanowiłem wpisywać wiadomość do Twittera, bez wychodzenia z Eclipse, żeby nie tracić czasu na oglądanie tego na stronie bądź korzystanie z jakiegoś zewnętrznego programu (życie w Eclipse):)<div>Wiec zaczynamy, krok pierwszy:<br /><ul><li> znaleźć jakieś API które umożliwia połączenie z Twitterem wybrałem <a href="http://yusuke.homeip.net/twitter4j/en/index.html#introduction">twitter4J</a> .</li></ul></div><div>Teraz w konsoli tworzymy nowy projekt Twitter za pomocą Maven:</div><br /><textarea name="code" class="java"><br /> lipka$ mvn archetype:create -DgroupId=com.itsilesia.twitter -DartifactId=Twitter<br /></textarea><br />Potem przygotowanie projektu do importu do ulubionego IDE, wchodzimy do katalogu projektu.<br /><textarea name="code" class="java"><br />lipka$ mvn eclipse:eclipse<br /></textarea><br /><div>Importujemy teraz projekt do Eclipse.</div><div>Teraz dodaje twitter4j do dependencies w pliku pom.xml:</div><textarea name="code" class="java"><br /><project xmlns="http://maven.apache.org/POM/4.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><br /> <modelversion>4.0.0</modelversion><br /> <groupid>com.itsilesia.twitter</groupid><br /> <artifactid>Twitter</artifactid><br /> <packaging>jar</packaging><br /> <version>1.0-SNAPSHOT</version><br /> <name>Twitter</name><br /> <url>http://maven.apache.org</url><br /> <dependencies><br /> <dependency><br /> <groupid>net.homeip.yusuke</groupid><br /> <artifactid>twitter4j</artifactid><br /> <version>[2.0,)</version><br /> </dependency><br /> </dependencies><br /></project><br /><br /></textarea><div style=""><span class="Apple-style-span" style=";font-family:'Lucida Grande';font-size:11;" >Teraz przeglądamy dokumentację twitter4J i zaczynamy pisać kod:)</span></div><br /><textarea name="code" class="java"><br />package com.itsilesia.twitter;<br /><br />import twitter4j.Status;<br />import twitter4j.Twitter;<br />import twitter4j.TwitterException;<br /><br />/**<br /> * @author lipka<br /> * <br /> */<br />public class App {<br /> public static void main(String[] args) {<br /> Twitter twitter = new Twitter("lukaszlipka", "******");<br /> try {<br /> Status status = twitter.update("Allo twitter users:) from Eclipse");<br /> } catch (TwitterException e) {<br /> e.printStackTrace();<br /> }<br /> System.out.println("Hallo Twitter:)");<br /> }<br />}<br /></textarea><br /><br /><div style=""><span class="Apple-style-span" style=";font-family:'Lucida Grande';font-size:11;" >Teraz <span style="font-weight: bold;">CTRL+F11</span> i uruchamiamy nasz program:)</span><span class="Apple-style-span" style=";font-family:'Lucida Grande';font-size:11;" >No i pierwsza Twitterowa wiadomość poleciała w eter:) Hmm ciekawe może tak logować co się dzieje w programie za pomocą Twittera prosto do klienta:)<br />W drugiej części przedstawię jak odczytać wiadomości od innych. A w trzeciej odsłonie może napisze transport do <a href="http://www.mulesource.org/">mule</a>:)<br /></span></div>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-85258898859261981072009-05-21T18:42:00.000+02:002009-05-23T23:29:49.638+02:00James Gosling is coming to Jazoon'09Dla tych co się wybierają na <a href="http://jazoon.com/">Jazoon'09</a> do Zurychu, czeka bardzo miła niespodzianka, konferencję otworzy sam ojciec Javy <a href="http://www.sun.com/aboutsun/media/ceo/bio.jsp?name=James%20Gosling">James Gosling</a>. 23 czerwca James Gosling rozpocznie konferencję Jazoon'09 "Opening Keynote Speech". Więc nic innego nie pozostaje jak tylko wybrać się do Zurychu:)Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-57646155754737490912009-05-20T23:47:00.000+02:002009-05-21T00:22:24.634+02:00Maven i instalacja lokalnego jaraŻeby unikać ciągłego przeszukiwania dokumentacji, postanowiłem sobie stworzyć notatkę z tego jak dodać jara do lokalnego repozytorium <a href="http://maven.apache.org/">mavena</a>, jeśli nie jest on dostępny w żadnym innym publicznym repozytorium.<br />Krok pierwszy idziemy do katalogu gdzie znajduje się nasz wybrany jar, w naszym przypadku chcemy sobie dodać jar o nazwie tinymce-1.4-SNAPSHOT.jar. W konsoli wpisujemy magiczną komendę:<br /><textarea name="code" class="java"><br />lukasz-lipkas-computer:~/Documents/workspace_ganymede/bkf/core/lib lipka$ mvn install:install-file -Dfile=tinymce-1.4-SNAPSHOT.jar -DgroupId=tinymce -DartifactId=tinymce -Dversion=1.4-SNAPSHOT -Dpackaging=jar<br /></textarea><br />jako rezultat otrzymujemy:<br /><textarea name="code" class="java"><br />lukasz-lipkas-computer:~/Documents/workspace_ganymede/bkf/core/lib lipka$ mvn install:install-file -Dfile=tinymce-1.4-SNAPSHOT.jar -DgroupId=tinymce -DartifactId=tinymce -Dversion=1.4-SNAPSHOT -Dpackaging=jar <br />[INFO] Scanning for projects...<br />[INFO] Searching repository for plugin with prefix: 'install'.<br />[INFO] ------------------------------------------------------------------------<br />[INFO] Building Maven Default Project<br />[INFO] task-segment: [install:install-file] (aggregator-style)<br />[INFO] ------------------------------------------------------------------------<br />[INFO] [install:install-file]<br />[INFO] Installing /Users/lipka/Documents/workspace_ganymede/bkf/core/lib/tinymce-1.4-SNAPSHOT.jar to /Users/lipka/.m2/repository/tinymce/tinymce/1.4-SNAPSHOT/tinymce-1.4-SNAPSHOT.jar<br />[INFO] ------------------------------------------------------------------------<br />[INFO] BUILD SUCCESSFUL<br />[INFO] ------------------------------------------------------------------------<br />[INFO] Total time: <><br /></textarea><br />i nasz wybrany jar znajduje się już w lokalnym repozytorium .m2.<br />A teraz dodajemy go jako jar zależny do naszego projektu, w związku z czym musimy zmodyfikować plik pom.xml a dokładnie dodać nowy wpis do dependencies.<br /><br /><textarea name="code" class="xml"><br /><dependency><br /> <groupid>tinymce</groupid><br /> <artifactid>tinymce</artifactid><br /> <version>1.4-SNAPSHOT</version><br /> </dependency><br /></textarea><br />I to by było na tyle.Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com4tag:blogger.com,1999:blog-3218663144896214273.post-62548972809921534572009-05-11T23:51:00.000+02:002009-05-11T23:56:37.236+02:00Jazoon'09 - James GoslingChcesz żeby na<a href="http://jazoon.com/"> Jazoon'09</a> pojawił się James Gosling ?<br />Jeśli tak to wspomóż zespół Jazzon'09 i dopisz się do <a href="http://jazoon.doodle.com/g7qfpqqaw4us89at">listy</a> osób zapraszającej James Gosling'a na<a href="http://jazoon.com/"> Jazoon'09</a>!!!Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-70492232399949399032009-04-30T21:05:00.000+02:002009-04-30T21:50:05.311+02:00Jazoon - rozkład jazdy23 - 25 czerwca w Zurychu super konferencja <a href="http://jazoon.com/">Jazzon'09</a>.<br />Jeśli nadal nie jesteś zdecydowany (a powinieneś:)) zobacz co tam się będzie działo:<br /><a href="http://jazoon.com/en/conference/schedule.html">program</a><br />A teraz rozkład jazdy przez cały tydzień:<br /><ul><li> <a href="http://jazoon.com/en/conference/monday.html">poniedziałek program</a></li><li><a href="http://jazoon.com/en/conference/tuesday.html">wtorek program</a></li><li><a href="http://jazoon.com/en/conference/wednesday.html">środa program </a></li><li><a href="http://jazoon.com/en/conference/thursday.html">czwartek program</a></li><li><a href="http://jazoon.com/en/conference/friday.html">piątek i sobota program</a><br /></li></ul>Do zobaczenia w Zurychu:)Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0tag:blogger.com,1999:blog-3218663144896214273.post-82709932905708800082009-04-16T20:57:00.000+02:002009-04-16T22:33:42.633+02:00Groovy, TDD i przenoszenie zawartośći katalogówOd dłuższego czasu miałem zamiar poznać język <a href="http://groovy.codehaus.org/">Groovy</a>, ale ciągle jakoś korzystałem z powłoki <a href="http://www.gnu.org/software/bash/">bash</a> do pisania prostych skryptów. Dzisiaj postanowiłem to zmienić i napisać pierwszy skrypt:) który będzie przenosił katalogi z zawartością (pliki plus pod katalogi) z jednego katalogu do drugiego z użyciem <a href="http://groovy.codehaus.org/Closures">clousers</a> :)<br />Więc zgodnie z <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> zaczynamy od napisania testu, banalnie prostego w naszym wypadku, najpierw sprawdzimy czy po wykonaniu naszych operacji katalog zostanie pusty, pierwszy test sprawdza listRoots który ma zwrócić 1 bo będzie tylko jeden główny katalog, test 2 ma nam policzyć wszystkie pliki w naszym katalogu i o oczywiście po uruchomieniu naszego skryptu nie ma być żadnego pliku.<br /><textarea name="code" class="java"><br />package com.itsilesia.groovy<br /><br />def inputPath = "/Users/lipka/test/"<br />def outputPath = "/Users/lipka/out/"<br /><br />def inputDirectory= new File(inputPath)<br /><br />assert inputDirectory.listRoots().size() == 1<br />assert inputDirectory.listFiles().size() == 0<br /></textarea><br />Jak można było się spodziewać test nie przeszedł, bo katalog główny zawierał pliki i podkatalogi.<br /><textarea name="code" class="java"><br />Exception in thread "main" java.lang.AssertionError: Expression: (inputDirectory.listFiles().size() == 0)<br /> at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:393)<br /> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:683)<br /> at com.itsilesia.groovy.MoveToDirectory.run(MoveToDirectory.groovy:27)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)<br /> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)<br /> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)<br /> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756)<br /> at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:778)<br /> at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:758)<br /> at org.codehaus.groovy.runtime.InvokerHelper.runScript(InvokerHelper.java:401)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)<br /> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)<br /> at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1105)<br /> at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:749)<br /> at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:170)<br /> at com.itsilesia.groovy.MoveToDirectory.main(MoveToDirectory.groovy)<br />Java Result: 1<br /></textarea><br />Wiec jak na razie wszystko zgodnie z planem:) teraz tylko napisać resztę kodu, żeby test przeszedł bez przeszkód:)<br /><textarea name="code" class="java"><br />package com.itsilesia.groovy<br /><br />def inputPath = "/Users/lipka/test/"<br />def outputPath = "/Users/lipka/out/"<br /><br />def inputDirectory= new File(inputPath)<br /><br />directoryMover = {<br /> def dir = new File(inputDirectory.getAbsolutePath()+"/"+it)<br /> if(dir.isDirectory()){<br /> def newDirectory = new File(outputPath+dir.getName());<br /> newDirectory.mkdir();<br /> dir.eachFile({<br /> def currentFile = new File(it.toString())<br /> def newFile = new File(outputPath+dir.getName()+"/"+currentFile.getName())<br /> currentFile.renameTo(newFile)<br /> })<br /> dir.delete()<br /> }else{<br /> dir.renameTo(new File(outputPath+dir.getName()))<br /> }<br />}<br /><br />inputDirectory.list().each(directoryMover)<br /><br />assert inputDirectory.listRoots().size() == 1<br />assert inputDirectory.listFiles().size() == 0<br /></textarea><br /><br />Nie wiem czy to jest dokładnie zrobione w zgodzie ze wszystkimi regułami programowania w Groovy, jeśli takie istnieją:) bo dopiero rozglądam się za jakąś książką:) ale muszę przyznać, że dzięki clousers można robić naprawdę kosmiczne rzeczy w paru liniach kodu:)<br />A tak wyglądała struktura katalogu przed uruchomieniem skryptu:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPu7a3-GnIBK17SyOZTPpNxeIh1gzDLQuBCu3Lke66wiecLu0tZ9EA_8bYcb9qeykDzkQLdva_zkptIhInOiQs0rYK7iyJtb_6rSoPFWtQWaBHd-lAcrwUVagcUolhyphenhyphencd04FuDO7kxNOs/s1600-h/Picture+4.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 209px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPu7a3-GnIBK17SyOZTPpNxeIh1gzDLQuBCu3Lke66wiecLu0tZ9EA_8bYcb9qeykDzkQLdva_zkptIhInOiQs0rYK7iyJtb_6rSoPFWtQWaBHd-lAcrwUVagcUolhyphenhyphencd04FuDO7kxNOs/s320/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5325387362359782114" border="0" /></a><br />Uruchamiamy <a href="http://www.netbeans.org/">Netbeansa</a>:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikYCndrmCIGsN-cYz8Cr5FiUPbgQxc_NoIjb_kJltBhMdovhnm4IFFkO-QFbB2X_FJqVXZJgF5rynl63du_o6vqYBhz50cQPhYyQiJpJS2Eu855kMkToqmOJkgzwzZCHx-Unh4KgypZcA/s1600-h/Picture+5.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 254px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikYCndrmCIGsN-cYz8Cr5FiUPbgQxc_NoIjb_kJltBhMdovhnm4IFFkO-QFbB2X_FJqVXZJgF5rynl63du_o6vqYBhz50cQPhYyQiJpJS2Eu855kMkToqmOJkgzwzZCHx-Unh4KgypZcA/s320/Picture+5.png" alt="" id="BLOGGER_PHOTO_ID_5325387755950721970" border="0" /></a>A wynik:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPQxhsk-fVISch8YkKoCfIMJi1Zs_3rUw1AqFUNACmi_ARHpUdgeid6leqELsQ1BAL2CsErmDEnJuk3MVklyb1HU_5YsoLk8Xeur9I1Ywiq4AsFGh7RnNf3x_rU-DeXgfW3DP6HB8S6LQ/s1600-h/Picture+6.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 206px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPQxhsk-fVISch8YkKoCfIMJi1Zs_3rUw1AqFUNACmi_ARHpUdgeid6leqELsQ1BAL2CsErmDEnJuk3MVklyb1HU_5YsoLk8Xeur9I1Ywiq4AsFGh7RnNf3x_rU-DeXgfW3DP6HB8S6LQ/s320/Picture+6.png" alt="" id="BLOGGER_PHOTO_ID_5325388015141911490" border="0" /></a><br />Więc jak widać wszystko zadziałało zgodnie z planem, pierwsza przeprawa z Groovy za mną :)<br />Jak na razie to jestem zachwycony super wsparciem dla TDD i możliwościami clousers (dużo o nich czytałem, ale nie miałem możliwości zastosowania w praktyce).Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com3tag:blogger.com,1999:blog-3218663144896214273.post-21628428195753170022009-04-06T18:41:00.000+02:002009-04-06T18:46:59.090+02:0010. Spotkanie Śląskiej Grupy Użytkowników Technologii Java ( Silesia JUG )Śląska Grupa Użytkowników Technologii Java (Silesia JUG) serdecznie zaprasza wszystkich na dziesiąte spotkanie, które odbędzie się 7.04.2009 o godzinie 18:30 w COIG (Centralny Ośrodek Informatyki Górnictwa S.A.) w sali 136 na pierwszym piętrze, ul.Mikołowska 100 w Katowicach.<br /><br />Temat: <span style="font-weight: bold;">Web Beans</span><br /><br />Prowadzący: <span style="font-weight: bold;">Damian Łukasik</span><br /><br />Plan prezentacji:<br />1. Co może być Web Beanem?<br />2. Dependency Injection<br />3. Metaadnotacje<br />4. Konteksty<br />5. Producenci, punkty wstrzykiwania<br />7. Interceptory, Dekoratory, Zdarzenia<br />8. Stereotypy<br />9. Mocno typowany XML<br />10. Integracja z J2EE<br /><br />Po prezentacji (1,5h) odbędzie się krótka pogawędka (15 - 30 minut). Po prezentacji pytania dla obecnych, gdzie będzie można wygrać:<br />a. IntelliJ IDEA Personal License<br />b. ReSharper Personal License<br />c. TeamCity Build Agent<br />d. Ruby IDE Personal License<br /><br />Wstęp wolny!<br /><br />Zapraszam wszystkich w imieniu Damiana i Silesia JUGŁukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com2tag:blogger.com,1999:blog-3218663144896214273.post-86774777913632877152009-03-29T14:04:00.000+02:002009-03-29T14:25:54.899+02:00Jazoon Cutting Edge<a href="http://jazoon.com/en/contribute.html">Jazoon Cutting Edge</a> masz ciekawy pomysł na 20 minutowy wykłada o tym, co aktualnie dzieje się w świeci Javy, zgłoś się do organizatorów <a href="http://jazoon.com/en.html">Jazzon'09</a>. Ważne terminy:<br /><ul><li>Call for papers: od <span style="font-weight: bold;">15 kwietnia 2009</span></li><li>Submission deadline: do <span style="font-weight: bold;">15 maj 2009.</span></li></ul>Co możesz zyskać zgłaszając się do <a href="http://jazoon.com/en/contribute.html">Jazoon Cutting Edge</a>:<br /><ul><li>darmową wejściówkę dla głównego prelegenta</li><li>50 % zniżki dla drugiego prowadzącego prelegenta.</li></ul>Dokładna data <a href="http://jazoon.com/en/contribute.html">Jazoon Cutting Edge</a> to 23 czerwiec 2009 w Zurychu w Szwajcarii. Zapraszam wszystkich zainteresowanych do wysyłania swoich zgłoszeń do organizatorów!! Powodzenia!!<br /><br /><a href="http://jazoon.com/en/contribute.html"></a>Łukasz Lipkahttp://www.blogger.com/profile/13268170853082489960noreply@blogger.com0