<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8669613772297521930</id><updated>2012-01-27T13:45:38.192+01:00</updated><category term='BBC'/><category term='analiza biznesowa'/><category term='pre-tested commit'/><category term='continuous integration'/><category term='funny'/><category term='testowanie'/><category term='books'/><category term='robot'/><category term='certified'/><category term='Spring Recipes'/><category term='Enterprise Architecture'/><category term='motivation'/><category term='grails'/><category term='VPN'/><category term='SCEA'/><category term='TDD'/><category term='business analysis'/><category term='wirtualizacja'/><category term='journal'/><category term='Kindle DX'/><category term='eclipse'/><category term='glossary'/><category term='ITIL v.3'/><category term='jee'/><category term='development environment'/><category term='closures'/><category term='work'/><category term='polski'/><category term='xp'/><category term='The Architecture Journal'/><category term='java'/><category term='JDD'/><category term='security'/><category term='example'/><category term='jstl'/><category term='poradnik'/><category term='Lady Java'/><category term='tłumaczenie'/><category term='Architektura Korporacyjna'/><category term='TOGAF'/><category term='babok'/><category term='IT Complexity'/><category term='continuous delivery'/><category term='planowanie kariery'/><category term='groovy'/><category term='clean code'/><category term='ACTA'/><category term='java black belt'/><category term='career planning'/><category term='książki'/><category term='ereader'/><category term='SDJ'/><category term='pisma'/><category term='Kindle'/><category term='podcast'/><category term='English'/><category term='VirtualBox'/><category term='HideIpVPN'/><category term='Wrocław JUG'/><category term='darmowe'/><category term='Syntax Highlighter'/><category term='zarządzanie projektem'/><category term='capability'/><category term='angry monkey'/><category term='banking'/><category term='leadership'/><category term='DropBox'/><category term='iiba'/><category term='agile'/><category term='wicket'/><category term='google collections'/><category term='Business Capability'/><category term='Pro Android'/><category term='Bank 2.0'/><category term='Spring'/><category term='konferencje'/><category term='Android'/><category term='wave'/><category term='mockito'/><category term='97 Things Every Software Architect Should Know'/><category term='exam'/><category term='Java exPress'/><category term='zawód programista'/><category term='refaktoryzacja'/><category term='Google Wave'/><category term='tutorial'/><category term='GlassFish'/><category term='prezentacja'/><category term='jsp'/><category term='Java Guide'/><category term='Sonar'/><category term='Code Retreat'/><category term='certification'/><category term='blogger'/><category term='kariera'/><category term='Productive Programmer'/><category term='Gradle'/><category term='Maven'/><category term='TeamCity'/><category term='MindMap'/><category term='javarsovia'/><category term='dobre praktyki'/><category term='polecam'/><category term='iPad'/><category term='cards'/><title type='text'>Paweł Zubkiewicz - blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>82</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2993337535315308142</id><published>2012-01-27T13:38:00.000+01:00</published><updated>2012-01-27T13:45:38.198+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ACTA'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Polish citizens against ACTA</title><content type='html'>&lt;span style="color: red; font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; font-size: large;"&gt;Say NO to ACTA!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="hw"&gt;Clamours against ACTA in many polish cities.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i1.kwejk.pl/site_media/obrazki/2012/01/c92c3e3555d06ed5ef06ad98960a3598.jpg?1327585959" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://i1.kwejk.pl/site_media/obrazki/2012/01/c92c3e3555d06ed5ef06ad98960a3598.jpg?1327585959" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;span class="hw"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red; font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif; font-size: large;"&gt; &lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;...and yes, I don't have rights to that image. &lt;a href="http://kwejk.pl/obrazek/876467/fina%C5%82,protest%C3%B3w,acta.html"&gt;Taken from kwejk.pl&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2993337535315308142?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2993337535315308142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2993337535315308142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2993337535315308142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2993337535315308142'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2012/01/polish-citizens-against-acta.html' title='Polish citizens against ACTA'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8083528233334018278</id><published>2011-12-27T13:50:00.000+01:00</published><updated>2011-12-27T13:50:04.322+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Gaining Competitive Advantage from Enterprise Architecture</title><content type='html'>Presentation by &lt;b&gt;Jeanne W. Ross&lt;/b&gt; about EA and its role in modern companies. It's really worth watching even if you have read her book on a subject (&lt;a href="http://www.amazon.com/gp/product/1591398398/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=1591398398" style="background-color: white; color: #33aaff; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px; text-align: center;"&gt;Enterprise Architecture As Strategy: Creating a Foundation for Business Execution&lt;/a&gt;). It really makes me happy to see someone so passionate and&amp;nbsp;enthusiastic&amp;nbsp;about &lt;i&gt;enterprise architecture.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="480" src="http://www.youtube.com/embed/ScHG63YmJ2k" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;You may fast forward to 8:50 minute skipping rather boring introduction ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8083528233334018278?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8083528233334018278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8083528233334018278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8083528233334018278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8083528233334018278'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/12/gaining-competitive-advantage-from.html' title='Gaining Competitive Advantage from Enterprise Architecture'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ScHG63YmJ2k/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3095244345039889702</id><published>2011-12-21T11:11:00.000+01:00</published><updated>2011-12-21T11:13:06.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='banking'/><category scheme='http://www.blogger.com/atom/ns#' term='cards'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Security of contact-less cards</title><content type='html'>Very interesting exercise exposing security issues of RFID technology deployed in our credit and debit cards. PasPass and PayWave utilize that technology.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/lLAFhTjsQHw" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Looks like there is serious security problem with our cards.&lt;br /&gt;&lt;br /&gt;On polish edition of Dragons Den was a guy who wants to do business on protecting cards from identification stealing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/7aZI_SsWVfk" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;Is mobile payment via NFC enabled phone the solution? Turning on application and providing pin turns on NFC chip, which starts to emit radio waves only for short time. This makes harder for thief to steal our cards credentials when we stay in a queue or sit in cafe. For default NFC chip is turned off and will&amp;nbsp;not respond to RFID/NFC call.&lt;br /&gt;&lt;br /&gt;Seems like better solution for me :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3095244345039889702?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3095244345039889702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3095244345039889702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3095244345039889702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3095244345039889702'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/12/security-of-contact-less-cards.html' title='Security of contact-less cards'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/lLAFhTjsQHw/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8153162500630664997</id><published>2011-12-16T10:46:00.000+01:00</published><updated>2011-12-16T10:52:18.597+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='banking'/><category scheme='http://www.blogger.com/atom/ns#' term='Bank 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Brett King - Bank 2.0: Modality Shift</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Very interesting presentation about future of banking. Brett is talking about shift to mobile&amp;nbsp;solutions, that are easier and more&amp;nbsp;convenient&amp;nbsp;for customers.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/qm7pIyRTFP0/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qm7pIyRTFP0&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="560" height="315"  src="http://www.youtube.com/v/qm7pIyRTFP0&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/9814302074/ref=as_li_ss_il?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=9814302074" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;Format=_SL160_&amp;amp;ASIN=9814302074&amp;amp;MarketPlace=US&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;tag=pawezubkblog-20&amp;amp;ServiceVersion=20070822" /&gt;&lt;/a&gt;Right now I'm reading his book &lt;a href="http://www.amazon.com/gp/product/9814302074/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=9814302074"&gt;Bank 2.0&lt;/a&gt; and I must admit that I like his new, fresh view on banking industry. The &lt;i&gt;real &lt;/i&gt;customer orientation I'd say. Right now I get a feeling that in Poland banks are&amp;nbsp;introducing&amp;nbsp;mobile banking for wrong reasons. There is big hype about it and no one really want to be the last one to have it.&amp;nbsp;I think they don't believe mobile banking will change the way customers interact with banks. Most of them think it's online banking on smaller screen. Especially for those kind of people this book will be most useful.&lt;br /&gt;I don't think everything Brett writes will happen in future (some of those things already&amp;nbsp;happened&amp;nbsp;;-) but he's very smart guy. So getting to know his ideas and observations definitely will give you broader view on banking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'll share with you more of my thoughts about it when I finish reading it, but I'm pretty sure it's worth reading. Look at customer reviews at Amazon. Here are&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/9814302074/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=9814302074"&gt;paper&lt;/a&gt; and &lt;a href="http://www.amazon.com/gp/product/B004RRJYYA/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B004RRJYYA"&gt;Kindle&lt;/a&gt;&amp;nbsp;versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8153162500630664997?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8153162500630664997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8153162500630664997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8153162500630664997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8153162500630664997'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/12/brett-king-bank-20-modality-shift.html' title='Brett King - Bank 2.0: Modality Shift'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6729205398292880940</id><published>2011-12-14T10:38:00.000+01:00</published><updated>2011-12-14T10:39:57.422+01:00</updated><title type='text'>TOGAF 9.1 Released</title><content type='html'>The Open Group has&amp;nbsp;released&amp;nbsp;maintainance update to their&amp;nbsp;architectural&amp;nbsp;framework TOGAF 9. There are no big changes, most of them are minor and aim at clarification.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.opengroup.org/2011/12/01/why-do-pencils-have-erasers/"&gt;More information on Open Group Blog, here is a post&amp;nbsp;describing&amp;nbsp;changes.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6729205398292880940?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6729205398292880940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6729205398292880940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6729205398292880940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6729205398292880940'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/12/togaf-91-released.html' title='TOGAF 9.1 Released'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8234988218235040374</id><published>2011-11-29T10:01:00.001+01:00</published><updated>2011-11-29T11:07:15.754+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>So, it's official</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_lc8e1y0d-yo/TGAtdGxlfLI/AAAAAAAAAyQ/7CNtHnS4vs0/s1600/EndIsNear1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_lc8e1y0d-yo/TGAtdGxlfLI/AAAAAAAAAyQ/7CNtHnS4vs0/s320/EndIsNear1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Today I got an email from Google about Wave. The end is near :-(&lt;br /&gt;&lt;br /&gt;The message was:&lt;br /&gt;&lt;br /&gt;"Dear Wavers,&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;More than a year ago, we &amp;nbsp;announced that Google Wave would no longer be developed as a separate product. At the time, we committed to maintaining the site at least through to the end of 2010. Today, we are sharing the specific dates for ending this maintenance period and shutting down Wave. As of January 31, 2012, all waves will be read-only, and the Wave service will be turned off on April 30, 2012. You will be able to continue exporting individual waves using the existing PDF export feature until the Google Wave service is turned off. We encourage you to export any important data before April 30, 2012.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;If you would like to continue using Wave, there are a number of open source projects, including Apache Wave. There is also an open source project called Walkaround that includes an experimental feature that lets you import all your Waves from Google. This feature will also work until the Wave service is turned off on April 30, 2012.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;For more details, please see our help center.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Yours sincerely,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The Wave Team"&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Any good alternatives to Google Wave? It's opensource maybe someone will run it or already runs it? Please leave a comment if you know something.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;UPDATE:&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I've found that actually something is working and it has strong number of&amp;nbsp;supporters. On Apache Wave project site&amp;nbsp;&lt;a href="http://incubator.apache.org/wave/"&gt;http://incubator.apache.org/wave/&lt;/a&gt;&amp;nbsp;there is info about their project "Wave in a Box". This will be easy to run on you Linux version of Wave, that utilizes other Apache's&amp;nbsp;software. Apparently Google Wave was written is such way that it was not compatible with Linux. Right now guys are migrating stuff.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are even working Wave servers right now. Look at&amp;nbsp;&lt;a href="http://waveinabox.net/"&gt;http://waveinabox.net&lt;/a&gt;, in my opinion it works pretty good.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8234988218235040374?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8234988218235040374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8234988218235040374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8234988218235040374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8234988218235040374'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/11/so-its-official.html' title='So, it&apos;s official'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lc8e1y0d-yo/TGAtdGxlfLI/AAAAAAAAAyQ/7CNtHnS4vs0/s72-c/EndIsNear1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8984993611820178373</id><published>2011-11-24T17:08:00.001+01:00</published><updated>2011-11-24T17:46:49.887+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>End of Google Wave</title><content type='html'>&lt;a href="http://mashable.com/2011/11/22/google-wave-knol-and-gears-headed-for-retirement-video/"&gt;Once again Google announced end of Google Wave.&lt;/a&gt; Probably by the end of January Wave will be read-only. Around April it will be killed.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-aFR9rBJ2aLc/THqaj8433UI/AAAAAAAACAg/lIiadg_ulaE/s1600/google_wave_logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://3.bp.blogspot.com/-aFR9rBJ2aLc/THqaj8433UI/AAAAAAAACAg/lIiadg_ulaE/s320/google_wave_logo.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;[Minute of silence]&lt;br /&gt;&lt;br /&gt;The idea behind Wave was to replace email with new, modern way of communication. On&amp;nbsp;Wikipedia&amp;nbsp;we can read &lt;a href="http://en.wikipedia.org/wiki/Apache_Wave"&gt;"[Wave]&amp;nbsp;designed to merge key features of media like e-mail, instant messaging, wikis, and social networking. Communications using the system can be synchronous and/or asynchronous, depending on the preference of individual users"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;I think this&amp;nbsp;concept&amp;nbsp;was and still is great!&lt;/b&gt; The best thing about it is that it saves us from the &lt;u&gt;replay mess&lt;/u&gt;. What's replay mess? If you send email to more then one person and each of&amp;nbsp;recipients&amp;nbsp;replays at the same time then from on path of conversation N paths&amp;nbsp;are created. Each replay created one.&amp;nbsp;Paths are not synchronized.&amp;nbsp;Sometimes people just want to comment on small thing but in this big mess any new mail crates bigger snowball and makes communication harder. At some point no one knows who wrote what and why. This makes me sick.&lt;br /&gt;&lt;br /&gt;That's why&amp;nbsp;every time&amp;nbsp;when I'm going to any holiday trip with my friends I encourage them to use Google Wave. It just works great. There is no mess in communication between many people. Everything is simple and clear.&lt;br /&gt;&lt;br /&gt;To summarize, I think that was a chance that Google really didn't seize. Unfortunately. They say that service didn't get good feedback from users, but they didn't even try to integrate it with Gmail. Come on? Few weeks later buzz was integrated into Gmail. That was big failure. This will sound like conspiracy theory but for me it look like Google wanted Wave to fail. I'm sure there were some political&amp;nbsp;issues&amp;nbsp;inside Google, and someone's project was shutdown. That project was Wave. That's how we lost great tool for communication and&amp;nbsp;collaboration.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well... there is still little hope. Google gave code base to Apache&amp;nbsp;foundation, so maybe it will not&amp;nbsp;perish&amp;nbsp;completely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8984993611820178373?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8984993611820178373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8984993611820178373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8984993611820178373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8984993611820178373'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/11/end-of-google-wave.html' title='End of Google Wave'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-aFR9rBJ2aLc/THqaj8433UI/AAAAAAAACAg/lIiadg_ulaE/s72-c/google_wave_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-7955830607243101176</id><published>2011-10-11T18:10:00.001+02:00</published><updated>2011-10-11T18:10:56.741+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='glossary'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='tłumaczenie'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>TOGAF 9 Translation Glossary: English - Polish</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.orbussoftware.com/media/305543/togaf-9-solution.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.orbussoftware.com/media/305543/togaf-9-solution.png" /&gt;&lt;/a&gt;&lt;/div&gt;W sierpniu tego roku zostało oficjalnie zatwierdzone polskie tłumaczenie Glossary&amp;nbsp;z TOGAF 9. Miałem przyjemność brać udział w pracach grupy, która owe tłumaczenie popełniła.&lt;br /&gt;&lt;br /&gt;Udział mój był raczej skromny a tego posta proszę potraktować jako formę promocji polskiego tłumaczenia, a nie mojej osoby ;-) &amp;nbsp;Kilka najbardziej pracowitych osób (&lt;a href="http://www.goldenline.pl/forum/2589046/togaf-9-translation-glossary-english-polish"&gt;tutaj wymienia je nasz koordynator - Rafał Jabłonka&lt;/a&gt;) włożyło w nie wiele pracy i zapału. Udało im się stworzyć spójną listę terminów, które z powodzeniem można wykorzystać w dyskusjach technicznych ( Czy rozmowy Architektów Korporacyjnych w ogóle powinny być techniczne?), jak i podczas rozmów z klientami, którzy ze swej natury patrzą na problemy w ujęciu bardziej biznesowym.&lt;br /&gt;&lt;br /&gt;Tłumaczenie można bezpłatnie pobrać ze strony The Open Group, &lt;a href="https://www2.opengroup.org/ogsys/jsp/publications/PublicationDetails.jsp?catalogno=c116"&gt;dokładnie stąd&lt;/a&gt;. Gorąco w swoim i całej grupy imieniu zachęcam do czynnego używania oraz promowania go w swoich firmach. Po to zostało stworzone.&lt;br /&gt;&lt;br /&gt;Równocześnie dziękuję wszystkim, z którymi miałem okazję pracować przy tym tłumaczeniu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-7955830607243101176?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/7955830607243101176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=7955830607243101176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7955830607243101176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7955830607243101176'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/10/togaf-9-translation-glossary-english.html' title='TOGAF 9 Translation Glossary: English - Polish'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Wrocław, Poland</georss:featurename><georss:point>51.1078852 17.0385376</georss:point><georss:box>50.9483787 16.7226806 51.2673917 17.354394600000003</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5386686586731186128</id><published>2011-07-18T09:02:00.000+02:00</published><updated>2011-07-18T09:02:56.815+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>JavaSE7 Launch - Wrocław JUG Event</title><content type='html'>Tomorrow (19.07) &lt;a href="http://jug.wroclaw.pl/"&gt;Wrocław Java User Group&lt;/a&gt; is going to have a meeting devoted to Java 7. For more information go &lt;a href="http://jug.wroclaw.pl/?p=43"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5386686586731186128?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5386686586731186128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5386686586731186128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5386686586731186128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5386686586731186128'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/07/javase7-launch-wrocaw-jug-event.html' title='JavaSE7 Launch - Wrocław JUG Event'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2854310890993520167</id><published>2011-07-16T17:55:00.001+02:00</published><updated>2011-07-16T18:05:21.292+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>My summer books collection (to read)</title><content type='html'>In recent weeks I found and bought some books that I plan to read on my summer holidays. Almost all the books are about IT, that's why I think it can be interesting for you to browse through my list.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/fruITion-Creating-Corporate-Information-Technology/dp/0977140032?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img alt="fruITion: Creating the Ultimate Corporate Strategy for Information Technology" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0977140032&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;I will start with&amp;nbsp;&lt;a href="http://www.amazon.com/fruITion-Creating-Corporate-Information-Technology/dp/0977140032?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;fruITion: Creating the Ultimate Corporate Strategy for Information Technology&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977140032" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; by Chris&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0977140032" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; Potts. Actually I read his second book&amp;nbsp;&lt;a href="http://www.amazon.com/recrEAtion-Extraordinary-Contribution-Enterprise-Architects/dp/1935504088?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;recrEAtion: Realizing the Extraordinary Contribution of Your Enterprise Architects&lt;/a&gt;, a short novel about Simon an Enterprise Architect, that learns from his CEO what really EA is? I was amazed how addictive that book was. It described really simple what does (or should do) an&amp;nbsp; Enterprise Architect. That subject is not new for me but I enjoyed that position, thought. That's why I decided to buy his first book. fruITion is about creating strategy for organization and is written in similar light way as is recrEAtion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img alt="Specification by Example: How Successful Teams Deliver the Right Software" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1617290084&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1617290084" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;a href="http://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Specification by Example: How Successful Teams Deliver the Right Software&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1617290084" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; is my next position. Gojko Adzic tells us about "creating software based on realistic examples, bridging the communication gap between business stakeholders and the dev teams building the software. In this book, author Gojko Adzic distills interviews with successful teams worldwide, sharing how they specify, develop, and deliver software, without defects, in short iterative delivery cycles."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Introduction-Business-Architecture-Chris-Reynolds/dp/1435454227?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img alt="Introduction to Business Architecture" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=1435454227&amp;amp;tag=pawezubkblog-20" /&gt;&amp;nbsp;&lt;/a&gt;&lt;a href="http://www.amazon.com/Introduction-Business-Architecture-Chris-Reynolds/dp/1435454227?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&amp;nbsp;&lt;/a&gt;My next position on a list is &lt;a href="http://www.amazon.com/Introduction-Business-Architecture-Chris-Reynolds/dp/1435454227?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Introduction to Business Architecture&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1435454227" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;. Well, I haven't&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1435454227" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; started reading it yet but I browsed TOC and read many good comments on amazon about it. I think it's really good start to learn what really Business Architecture is and how to exploid&lt;br /&gt;&lt;br /&gt;When I was buying it I also spotted next book &lt;a href="http://www.amazon.com/Technical-Impact-Information-Technology-ebook/dp/B004OEISWK?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Technical Impact: Making Your Information Technology Effective and Keeping It That Way&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B004OEISWK" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;and I bought it too. It has great user review rating (5.0 per 21 reviews) and it's kinda cheap (almost $7) so I took it too. I'm almost sure I won't regret it ;-)&lt;br /&gt;&lt;br /&gt;Recently I also bought &lt;a href="http://www.cedewu.pl/produkty/profilProduktu/id/7228/"&gt;Współczesna bankowość korporacyjna&lt;/a&gt; which describes processes and changes in corporate banking sector.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Peasant-Prince-Thaddeus-Kosciuszko-Revolution/dp/B0055X6I8K?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img alt="The Peasant Prince: Thaddeus Kosciuszko and the Age of Revolution" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B0055X6I8K&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0055X6I8K" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;My last book in a list is something really not connected with IT. Really. It's &lt;strong&gt;Kościuszko. Książę chłopów&lt;/strong&gt;, polish version of Alex Storozynski's book &lt;a href="http://www.amazon.com/Peasant-Prince-Thaddeus-Kosciuszko-Revolution/dp/B0055X6I8K?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;The Peasant Prince: Thaddeus Kosciuszko and the Age of Revolution&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0055X6I8K" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;. The book is biography of Tadeusz Kościuszko, but it's written in such way that it's really fun to read, even if your not history freak (I am not). It also tells about other historical figures such as Polish King Stanislaw August Poniatowski or George Washington. I encourage all of you to read this book and learn more about that US and Polish hero.&lt;br /&gt;&lt;br /&gt;That's my list, that's my plan for summer. I hope I will find time to read just a half of them. I also hope that I inspired you to read one of them ;-)&lt;br /&gt;&lt;br /&gt;PS. I almost forgot, I also plan to read &lt;a href="http://www.amazon.com/Drive-Surprising-Truth-About-Motivates/dp/1594484805?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Drive: The Surprising Truth About What Motivates Us&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1594484805" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; by Dan Pink.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2854310890993520167?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2854310890993520167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2854310890993520167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2854310890993520167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2854310890993520167'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/07/my-summer-books-collection-to-read.html' title='My summer books collection (to read)'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5872822937339758943</id><published>2011-06-15T17:28:00.000+02:00</published><updated>2011-10-27T17:30:32.649+02:00</updated><title type='text'>My thoughts about iPad 2</title><content type='html'>Everyone that knows me close, knows that I'm not a big fan of Apple products. Of course I have to admit that iPod and iPhone changed the market. iPhone was first real smartphone that was bought by ordinary people and not just by nerds but I don't like them at all. It's all about marketing and IMHO apple devices are for people who doesn't know much about technology.&lt;br /&gt;&lt;br /&gt;I'm a big fan of Google products,&amp;nbsp;particularly&amp;nbsp;Gmail, Calendar and Android. My phone that works on Android OS integrates with Gmail and Calendar without any problem and this is huge advantage of that platform in comparison with iOS.&lt;br /&gt;&lt;br /&gt;In march I bought iPad2. Why? Mostly&amp;nbsp;because&amp;nbsp;I don't like Apple products so I can complain about it ;-)&lt;br /&gt;Seriously the reason was: performance. It is so fast. There are no lags on it. It's super fast, if you don't&amp;nbsp;believe&amp;nbsp;me, go and watch some videos on youtube that&amp;nbsp;compare&amp;nbsp;iPad2 with Android 3.0 devices.&lt;br /&gt;&lt;br /&gt;This is my first iOS device and I was so&amp;nbsp;surprise&amp;nbsp;how limited iOS is. I was joking about it but when I started using iOS I realized how limited it is. In android you can thinker everything and if not you can always change ROM here you can change background. There are no widgets, just icons. You need iTunes on your computer to turn on iPad. Why? I will ask&amp;nbsp;once&amp;nbsp;again: why you need iTunes to turn on iPad for a first time?&lt;br /&gt;&lt;br /&gt;BTW: iTunes is rubbish.&amp;nbsp;Every time&amp;nbsp;I sync my iPad it reorganizes my desktops and icons on them. I really don't know what is going on there.&lt;br /&gt;&lt;br /&gt;When I plug iPad to computer I can't copy my files on it. I have to use iTunes. Lack of filesystem&amp;nbsp;available&amp;nbsp;to user is pissing me off.&lt;br /&gt;&lt;br /&gt;But I must&amp;nbsp;admit&amp;nbsp;that I like my iPad. Surfing the web is really nice, I can check my email sitting in my armchair or when I'm eating my breakfast. There are few applications that are brilliant (Twitter, Pulse, IMDB) and it's pleasure to work with them. But to be fair the same things I can do on Android based tablets so... I generally like the idea of tables, and I find using them very&amp;nbsp;convenient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5872822937339758943?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5872822937339758943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5872822937339758943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5872822937339758943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5872822937339758943'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/10/my-thoughts-about-ipad-2.html' title='My thoughts about iPad 2'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2062309257472593556</id><published>2011-06-13T21:39:00.004+02:00</published><updated>2011-06-14T18:14:32.788+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development environment'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous delivery'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Continuous Delivery</title><content type='html'>Today I found another living and successful proof that &lt;b&gt;Continuous Delivery&lt;/b&gt; can be done. Moreover it can be done in financial sector&lt;br /&gt;&lt;ul&gt;&lt;li&gt;that must complies to many restrictions, and&lt;/li&gt;&lt;li&gt;operates with big amounts of money ;-)&lt;/li&gt;&lt;/ul&gt;I'm talking about company called &lt;a href="https://www.wealthfront.com/"&gt;WealthFront&lt;/a&gt;. More information about their implementation of Continuous Deliver can be found on their technical blog at &lt;a href="http://eng.wealthfront.com/"&gt;http://eng.wealthfront.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Correct me if I'm wrong, but as I remember &lt;a href="http://dannorth.net/"&gt;Dan North&lt;/a&gt;'s presentation, company that he works for - &lt;a href="http://www.drwtrading.com/"&gt;DRW Trading&lt;/a&gt; &amp;nbsp;(also financial sector) - uses that methodology too.&lt;br /&gt;&lt;br /&gt;PS. There is also book about that topic &lt;a href="http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: red;"&gt;update:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Here is link to very nice Dan's presentation: &lt;a href="http://www.infoq.com/presentations/From-Months-to-Minutes"&gt;From Months to Minute&lt;/a&gt;s - where he talks (among many other things) about CD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Does anyone have a link to video of his &lt;b&gt;optimising the business one shell script at a time&lt;/b&gt; presentation from QCon 2011?&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0321601912" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2062309257472593556?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2062309257472593556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2062309257472593556' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2062309257472593556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2062309257472593556'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/06/continuous-delivery.html' title='Continuous Delivery'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-9179376206207707457</id><published>2011-05-08T23:21:00.005+02:00</published><updated>2011-05-08T23:52:50.951+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>iPad Google Calendar full synchronization</title><content type='html'>This is simple tutorial that tells you how you can integrate ALL your Google Calendars, Contacts and mail with iPad&amp;nbsp;built in&amp;nbsp;calendar and mail apps. I'm writing that post&amp;nbsp;because&amp;nbsp;it's not so wide known how to do it - &amp;nbsp;especially&amp;nbsp;because&amp;nbsp;Apple tells you to synchronize your&amp;nbsp;contacts&amp;nbsp;by iTunes. And Google prepared everything for synchronization but is silent about it. It even hides it from people around the world.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Basic synchronization&lt;/span&gt;&lt;br /&gt;When you add gmail&amp;nbsp;account&amp;nbsp;to iPad settings you can synchronize just one default&amp;nbsp;calender and get/send emails. This sucks! I've got like six calendars and want them all. Oh, and you can't synchronize contacts. Come one, it's 21st century and Apple says to sync via iTunes... are they kidding me?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Full&amp;nbsp;synchronization&lt;/span&gt;&lt;br /&gt;How to do it? It took me some time to find out by it was worth it.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If you have basic synchronization remove it form your iPad.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Go to&amp;nbsp;&lt;a href="http://m.google.com/sync"&gt;m.google.com/sync&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;If your language is not US English you will&amp;nbsp;&lt;/span&gt;probably&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;get error that 'your device is not supported' - it's a lie.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;On a site there is a link to change a language. Click it, and choose English US.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Sometimes it does not work (for me it doesn't on Opera) so I use Chrome browser with &lt;i&gt;US English Language&lt;/i&gt; set as default (I'm from Poland) then &lt;b&gt;&lt;i&gt;magically &lt;/i&gt;&lt;/b&gt;my device is supported.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;On the site click "&lt;strong style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;iPhone&lt;/strong&gt;&lt;strong style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&amp;nbsp;&lt;/strong&gt;&lt;a href="http://www.google.com/support/mobile/bin/answer.py?answer=138740&amp;amp;topic=14252" style="color: #2200cc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Read setup instructions&lt;/a&gt;"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;There will be tutorial on how to synchronize iPad with GMail, Calendar and Contacts.&amp;nbsp;&lt;/span&gt;Basically&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;you have to set up your gmail&amp;nbsp;&lt;/span&gt;account&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;in iPad as Microsoft Exchange account.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;After you're done with tutorial you can:&lt;/span&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Receive&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&amp;nbsp;and send emails&lt;/span&gt;&amp;nbsp;with built-in app&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Synchronize Contacts&amp;nbsp;with built-in app&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Synchronize Google calendars&amp;nbsp;with built-in app&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;How to synchronize not your own calendars?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;On Google Calendar I subscribed Polish Holidays calendar. There are such calendars for every country. By default that calendars can not be synchronized with iPad. But there is way do it.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When you go to&amp;nbsp;&lt;a href="https://www.google.com/calendar/iphoneselect"&gt;https://www.google.com/calendar/iphoneselect&lt;/a&gt;&amp;nbsp;you can see all your Google calendars but you can't check Holidays calendar :-(&lt;br /&gt;&lt;br /&gt;You need to go with you iPad browser to&amp;nbsp;&lt;a href="http://m.google.com/sync"&gt;m.google.com/sync&lt;/a&gt;&amp;nbsp;(change language on site if not US English), then you will get list of devices. My list just have iPad, click on it. You will see screen like that, with holidays calendar (Święta polskie - in Polish) able to check for synchronization.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-khtdEoPA8aQ/TccODs6tp4I/AAAAAAAACIo/jXTmMiy8yZQ/s1600/ipadSynch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-khtdEoPA8aQ/TccODs6tp4I/AAAAAAAACIo/jXTmMiy8yZQ/s320/ipadSynch.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;You should be able to select even holiday calendar (not own by you). At least it worked for me :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6OvKsalv6I0/TccOLDK1PmI/AAAAAAAACIs/41GwNUlIzq4/s1600/ipadCalendar2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-6OvKsalv6I0/TccOLDK1PmI/AAAAAAAACIs/41GwNUlIzq4/s320/ipadCalendar2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;My only question is: &lt;i&gt;&lt;b&gt;Why Apple and Google made that so difficult to synchronize and hide that information from users?&lt;/b&gt;&lt;/i&gt; Lack of full integration between iPad and Google services was killing me, and it took me like a month till I found out how to do it.&lt;br /&gt;&lt;br /&gt;I hope this post will help you all to take full advantage of iPad and Google Calendar.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-9179376206207707457?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/9179376206207707457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=9179376206207707457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9179376206207707457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9179376206207707457'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/05/ipad-google-calendar-full.html' title='iPad Google Calendar full synchronization'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-khtdEoPA8aQ/TccODs6tp4I/AAAAAAAACIo/jXTmMiy8yZQ/s72-c/ipadSynch.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-7119786301202894348</id><published>2011-04-17T12:41:00.000+02:00</published><updated>2011-04-17T12:41:51.250+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='motivation'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Two fine presentations</title><content type='html'>Today I saw two very nice, inspiring presentations about work, motivation &amp;amp; leadership. So I want to share them with you. &lt;br /&gt;&lt;br /&gt;In first one Dan Pink speaks about motivation in work.&amp;nbsp;Actually&amp;nbsp;he doesn't speak about anything new (at least to me ;-) but he does it in great way. Very good presentation.&lt;br /&gt;&lt;br /&gt;&lt;object height="326" width="446"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/DanielPink_2009G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=618&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=dan_pink_on_motivation;year=2009;theme=the_creative_spark;theme=not_business_as_usual;theme=speaking_at_tedglobal2009;event=A+Taste+of+TEDGlobal+2009;tag=Business;tag=Science;tag=brain;tag=creativity;tag=social+change;tag=work;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/DanielPink_2009G-medium.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=618&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=dan_pink_on_motivation;year=2009;theme=the_creative_spark;theme=not_business_as_usual;theme=speaking_at_tedglobal2009;event=A+Taste+of+TEDGlobal+2009;tag=Business;tag=Science;tag=brain;tag=creativity;tag=social+change;tag=work;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The second presentation by Mary Poppendieck is more like lecture, it's&amp;nbsp;hour&amp;nbsp;and half long. Main topic is leadership and it's change over time. Also Mary shares with us many interesting stories from her professional life.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/ypEMdjslEOI" title="YouTube video player" width="480"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-7119786301202894348?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/7119786301202894348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=7119786301202894348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7119786301202894348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7119786301202894348'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/04/two-fine-presentations.html' title='Two fine presentations'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ypEMdjslEOI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2647142332793478895</id><published>2011-04-14T22:57:00.002+02:00</published><updated>2011-04-14T23:06:50.923+02:00</updated><title type='text'>If you are ...</title><content type='html'>If you're half as &lt;b&gt;awesome&lt;/b&gt; as &lt;a href="http://en.wikipedia.org/wiki/Barney_Stinson"&gt;&lt;b&gt;Barney Stinson&lt;/b&gt;&lt;/a&gt; you're welcome to join our team at QNH Poland. Yes, we are hiring, but first watch this video and answer one question: &lt;i&gt;&lt;b&gt;Am I half as awesome as he is?&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/xxdZrhf0B2E/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xxdZrhf0B2E&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266" src="http://www.youtube.com/v/xxdZrhf0B2E&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;If your answer is &lt;b&gt;YES&lt;/b&gt;, then&amp;nbsp;nothing&amp;nbsp;and&amp;nbsp;everything is &lt;i&gt;possimpible.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;We are looking for Java Developers and JEE Architects. So if think you're good enough please contact me at p.zubkiewicz((at))qnh.pl for more information.&lt;br /&gt;&lt;br /&gt;PS. If you find that post not funny, do me a favor and don't try to join our awesome team :-)&lt;br /&gt;PS2. It's for real!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2647142332793478895?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2647142332793478895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2647142332793478895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2647142332793478895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2647142332793478895'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2011/04/if-you-are.html' title='If you are ...'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8892459357206824787</id><published>2010-12-21T09:01:00.001+01:00</published><updated>2010-12-21T09:02:59.924+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exam'/><category scheme='http://www.blogger.com/atom/ns#' term='SCEA'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Useful resources for SCEA preparation</title><content type='html'>In this post I will share with you what I use to prepare myself to SCEA exam, part 1. Probably most of you (interested in SCEA) know that resources, but few of them, I think, is not so popular. So here's my list of resources:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Certified-Enterprise-Architect-Study-Guide/dp/0131482033?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Sun Certified Enterprise Architect for Java EE Study Guide (2nd Edition)&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131482033" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; - as I wrote before&lt;/li&gt;&lt;li&gt;Whizlabs Prepkit&amp;nbsp;- as I wrote before&lt;/li&gt;&lt;li&gt;&lt;i&gt;2010 Study guide for sun J2EE 5 architect exam&lt;/i&gt; by Mikalai Zaikin, updated in January 2010 by Adel Almoshaigah. It's huge material, almost 300 pages of information just for part one of exam. Available to download &lt;a href="http://www.scribd.com/doc/25297376/Java-5-Architect-Exam"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Design patterns flashcards - to help memorize them all. BTW: &lt;a href="http://quizlet.com/"&gt;Quizlet&lt;/a&gt; is a great tool, allows you to learn in various ways, make different tests, quizzes and even games based on provided data.&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://quizlet.com/360447/design-patterns-flash-cards/"&gt;GOF design patterns&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://quizlet.com/2530165/j2ee-design-patterns-flash-cards/"&gt;J2EE Design Patterns&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;a href="http://keithrieck.wordpress.com/scea-notes/"&gt;Keith Rieck's SCEA notes&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.selikoff.net/2010/07/16/jeannes-scea-5-part-1-experiences/"&gt;Jeanne Boyarsky tips&lt;/a&gt; - as I wrote before.&lt;/li&gt;&lt;/ol&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_EEfMPS_r4rA/TQ-Ur67HuCI/AAAAAAAACGw/Q9ok8UJnU5g/s1600/SantaDuke.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/TQ-Ur67HuCI/AAAAAAAACGw/Q9ok8UJnU5g/s200/SantaDuke.png" width="180" /&gt;&lt;/a&gt;&lt;/div&gt;Probably my list in time will be extended by this books:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/EJB-3-Action-Debu-Panda/dp/1933988347?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;EJB 3 in Action&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=1933988347" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; - I read it few years ago, I think I'll browse it this time and just read some parts about specific problems&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Head First Design Patterns&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0596007124" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; - I've got Polish version of it, so it will be really fast to read it :-)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Core-J2EE-Patterns-Practices-Strategies/dp/0131422464?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Core J2EE Patterns: Best Practices and Design Strategies (2nd Edition)&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131422464" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; - on the other hand I think this book is going to take some time...&lt;/li&gt;&lt;/ul&gt;...fortunately what's better to do at Christmas time than to learn some J2EE patterns :-&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8892459357206824787?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8892459357206824787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8892459357206824787' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8892459357206824787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8892459357206824787'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/12/useful-resources-for-scea-preparation.html' title='Useful resources for SCEA preparation'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/TQ-Ur67HuCI/AAAAAAAACGw/Q9ok8UJnU5g/s72-c/SantaDuke.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8254611207546832741</id><published>2010-12-20T15:44:00.002+01:00</published><updated>2010-12-20T15:46:44.081+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='exam'/><category scheme='http://www.blogger.com/atom/ns#' term='SCEA'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>SCEA - Whizlabs Diagnostic Test</title><content type='html'>As I said &lt;a href="http://pawelzubkiewicz.blogspot.com/2010/12/preparing-for-scea.html"&gt;earlier today on my blog&lt;/a&gt; I bought&amp;nbsp;&lt;a href="http://www.whizlabs.com/scea/mock-exam.html"&gt;Whizlabs SCEA (Part I) Exam Simulator&lt;/a&gt;. I just finished my&amp;nbsp;&lt;i&gt;Diagnostic&amp;nbsp;test&lt;/i&gt; to assess my knowledge and have baseline to compare&amp;nbsp;to.&lt;br /&gt;&lt;br /&gt;I wasn't surprised by my result. My score was 55%, the passing level is 57%. So I think it's no so bad for a start :-)&lt;br /&gt;&lt;br /&gt;But I've got a feeling that real exam has a little bit harder questions, because some from that test were pretty obvious for me.&lt;br /&gt;&lt;br /&gt;Exam&amp;nbsp;simulator&amp;nbsp;has web interface. The server is pretty laggy, I had to wait for 5 - 15 seconds between page load for each question. It really&amp;nbsp;should&amp;nbsp;use AJAX. The user&amp;nbsp;experience&amp;nbsp;is&amp;nbsp;average in my opinion.&lt;br /&gt;&lt;br /&gt;That's all for now. Back to books :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8254611207546832741?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8254611207546832741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8254611207546832741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8254611207546832741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8254611207546832741'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/12/scea-whizlabs-diagnostic-test.html' title='SCEA - Whizlabs Diagnostic Test'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-7569139642786397310</id><published>2010-12-20T10:03:00.002+01:00</published><updated>2010-12-20T10:19:34.071+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SCEA'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Preparing for SCEA</title><content type='html'>Well, new year is coming fast and it would be nice to have new certificate on a beginning of 2k eleven ;-)&lt;br /&gt;&lt;br /&gt;This time I'm going for &lt;i&gt;Sun Certified Enterprise Architect for Java EE 5&lt;/i&gt; or&amp;nbsp;&lt;a href="http://in.sun.com/training/certification/java/scea.xml"&gt;&lt;i&gt;Oracle Certified Master, Java EE 5 Enterprise Architect&lt;/i&gt;&lt;/a&gt; as it is called now. Oracle after aqusition of Sun changed names of certificates. Actually this is one of the&amp;nbsp;reasons&amp;nbsp;why I started preparing, I'm afraid Oracle can change exams too and it would be harder to pass them ;-)&lt;br /&gt;&lt;br /&gt;Usually&amp;nbsp;winter is my holiday season &amp;nbsp;because I snowboard, so I have no time to study when every weekend I spent in mountains. But&amp;nbsp;clearly&amp;nbsp;not this time. Right now I'm in a middle of&amp;nbsp;&lt;a href="http://www.amazon.com/Certified-Enterprise-Architect-Study-Guide/dp/0131482033?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Sun Certified Enterprise Architect for Java EE Study Guide (2nd Edition)&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0131482033" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&amp;nbsp;book (I think everybody who prepares for that exam read it). I'm also planning to buy whizlabs prepkit.&amp;nbsp;Opinions&amp;nbsp;are divided on that software, but many people&amp;nbsp;admitted&amp;nbsp;that it helped them (like for example&lt;a href="http://henryk-konsek.blogspot.com/2010/09/i-passed-sun-certified-enterprise.html"&gt; Henryk Konsek&lt;/a&gt;), so I'm going to try it too.&lt;br /&gt;&lt;br /&gt;I also rely on tips from&amp;nbsp;&lt;a href="http://www.selikoff.net/2010/07/16/jeannes-scea-5-part-1-experiences/"&gt;Jeanne Boyarsky&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So wish me luck ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-7569139642786397310?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/7569139642786397310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=7569139642786397310' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7569139642786397310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7569139642786397310'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/12/preparing-for-scea.html' title='Preparing for SCEA'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-1497969225048048094</id><published>2010-12-01T18:05:00.000+01:00</published><updated>2010-12-01T18:05:37.662+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='zawód programista'/><title type='text'>Inspekcje kodu</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_EEfMPS_r4rA/TPZ8_7HNoxI/AAAAAAAACGg/FDjG-IoJ5tQ/s1600/bot-search_opener_OK-300x150.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_EEfMPS_r4rA/TPZ8_7HNoxI/AAAAAAAACGg/FDjG-IoJ5tQ/s1600/bot-search_opener_OK-300x150.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Właśnie przeczytałem "Formalne Inspekcje" autorstwa Mariusza Chrapko. Artykuł został opublikowany w grudniowym&amp;nbsp;wydaniu&amp;nbsp;magazynu SDJ (darmowa kopia do&amp;nbsp;ściągnięcia&amp;nbsp;na &lt;a href="http://sdjournal.org/magazine/1551-zrob-to-w-chmurze"&gt;stronie pisma&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Z artykułu możemy się dowiedzieć dlaczego warto sprawdzać kod wykorzystując metodę inspekcji. Jakie istnieją rodzaje inspekcji (od najbardziej formalnych do lekkich związanych z XP i Agile) oraz&amp;nbsp;czym się każda z nich charakteryzuje. Autor również przedstawia potencjalne korzyści płynące z inspekcji, popierając je danymi z takich firm jak choćby IBM.&lt;br /&gt;&lt;br /&gt;Wszystko pięknie... jedyne co mnie zastanawia dlaczego takie podejście jest ignorowane przez większość firm?&lt;br /&gt;Z całym szacunkiem dla Mariusza Chrapko nie odkrył on przysłowiowej Ameryki, te techniki zapewniania jakości zostały wypracowane już dobrych parę lat temu, jednak nadal nie są powszechnie stosowane (przynajmniej wśród firm z którymi miałem do czynienia). Chlubnym wyjątkiem jest Comarch w którym miałem okazję pracować, jednak nawet i w nim tylko w naszym projekcie (tak! "nasz" projekt jest lepszy niż "wasz" ;-) mieliśmy &lt;i&gt;pair programming&lt;/i&gt; oraz &lt;i&gt;code reviews&amp;nbsp;&lt;/i&gt;(i to tylko do pewnego&amp;nbsp;stopnia).&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Parę&amp;nbsp;tygodni&amp;nbsp;temu, pod czas &lt;a href="http://coderetreat.wroclaw.pl/"&gt;Code Retreat&lt;/a&gt; zapytaliśmy uczestników czy w ich firmach stosuje się programowanie w parach... 10 może 15 procent osób podniosło ręce do góry. Ja osobiście nie znam lepszego sposobu na&amp;nbsp;usprawnienie&amp;nbsp;komunikacji w zespole,&amp;nbsp;wdrożenie&amp;nbsp;nowych pracowników oraz zwiększenie jakości&amp;nbsp;tworzonego&amp;nbsp;oprogramowania.&lt;br /&gt;&lt;br /&gt;Ciekawe skąd taka niechęć do inspekcji ?&lt;br /&gt;&lt;br /&gt;Osobiście uważam, że inspekcje powinny być prowadzone nie tylko na etapie tworzenia kodu, ale od samego początku procesu &lt;a href="http://en.wikipedia.org/wiki/Software_development_process"&gt;SDLC&lt;/a&gt;, szczególnie przy projektowaniu architektury systemu.&lt;br /&gt;&lt;br /&gt;Polecam wszystkim zapoznanie się z artykułem oraz podsunięcie go "pod nos" kolegom z zespołu. Dodatkowo link do&amp;nbsp;&lt;a href="http://softwareinspection.org/"&gt;http://softwareinspection.org/&lt;/a&gt;&amp;nbsp;- kiedyś widziałem prezentacje człowieka z tej grupy pod czas wirtualnego seminarium, mówiącą o wartości&amp;nbsp;inspekcji&amp;nbsp;kodu w procesie wytwarzania oprogramowania. Niestety teraz nie jestem w stanie jej znaleźć - może komuś się uda?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-1497969225048048094?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/1497969225048048094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=1497969225048048094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1497969225048048094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1497969225048048094'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/12/inspekcje-kodu.html' title='Inspekcje kodu'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EEfMPS_r4rA/TPZ8_7HNoxI/AAAAAAAACGg/FDjG-IoJ5tQ/s72-c/bot-search_opener_OK-300x150.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8879471407851298493</id><published>2010-11-18T19:45:00.003+01:00</published><updated>2010-11-18T22:50:35.157+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT Complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektura Korporacyjna'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Capability'/><category scheme='http://www.blogger.com/atom/ns#' term='capability'/><title type='text'>Prostota w architekturze</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_EEfMPS_r4rA/TOVsU6MoNcI/AAAAAAAACGM/9fQnW0Vokuw/s1600/giant-hugh-bath-duck-32cm-the-largest-bath-toy--417-p.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/TOVsU6MoNcI/AAAAAAAACGM/9fQnW0Vokuw/s1600/giant-hugh-bath-duck-32cm-the-largest-bath-toy--417-p.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Właśnie obejrzałem&amp;nbsp;prezentację&amp;nbsp;Dana Northa o której już kiedyś tweetowałem. Nosi nazwę&amp;nbsp;&lt;a href="http://www.infoq.com/presentations/Simplicity-Architect"&gt;Simplicity, The Way of the Unusual Architect&lt;/a&gt; i jest dostępna na &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Dalczego warto ją obejrzeć? Chociażby dla samego wstępu, który bym otagował jako #nerdhumor ;-) Później Dan się rozkręca i opowiada o tym jak my (programiści, architekci i &amp;nbsp;w ogóle ludzie) lubimy sobie komplikować życie - jest to wpisane w naszą naturę.&lt;br /&gt;&lt;br /&gt;Niestety komplikowanie aplikacji, systemów, architektury i koncepcji niczemu dobremu nie służy. Może czasem&amp;nbsp;wystarczy&amp;nbsp;rozwiązać problem w prosty sposób i przejść do następnego? Co o tym sądzicie?&lt;br /&gt;&lt;br /&gt;W całej prezentacji jest też jeden moment w którym Dan mówi o tym, że klientów nie&amp;nbsp;interesują&amp;nbsp;funkcje i ficzery tylko Capabilities. Co to jest &lt;b&gt;capability&lt;/b&gt;? Łatwiej będzie odpowiedzieć na pytanie: &lt;b&gt;dlaczego ludzi z biznesu interesuje capability?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Otóż dlatego, że dzięki niemu posiądą możliwość wykonywania czynności, których&amp;nbsp;wcześniej&amp;nbsp;nie mogli realizować (lub przynajmniej nie mogli w taki sposób jakby tego chcieli). Capability daje im &lt;b&gt;zdolność &lt;/b&gt;dokonania czegoś nowego lub innego, co jest dla nich bardzo ważne. Ta abstrakcja nie wchodzi w szczegóły (poziom ficzerów)&amp;nbsp;próbując&amp;nbsp;odpowiedzieć na pytanie &lt;i&gt;Jak? &lt;/i&gt;tylko pozostaje na poziomie &lt;i&gt;Co?&lt;/i&gt; mogę zrobić.&lt;br /&gt;&lt;br /&gt;Posługując się opisem słowno-muzycznym gdybym miał magiczny pierścień (czyt: aplikacja) który pozwala mi rzucać fireballe lub leczyć chorych (czyt: capability) to dla mnie właśnie ta magiczna zdolność byłaby najważniejsza, a nie to czy pierścień jest złoty, srebrny, zrobiony przez&amp;nbsp;elfów&amp;nbsp;czy krasnale. Co więcej jak tylko mój pierścień przestanie być magiczny i stracę pożądaną zdolność, jedyne co mogę zrobić to go zezłomować.&lt;br /&gt;&lt;br /&gt;W prezentacji o capabilities jest tylko&amp;nbsp;parę&amp;nbsp;zdań, więc dlaczego się tak bardzo o tym rozpisują? Dlatego, że akurat przypadkiem sporo w mojej pracy z klientami rozmawiam o &lt;b&gt;Business&amp;nbsp;Capabilities&lt;/b&gt; jako&amp;nbsp;koncepcji, która między innymi pozwala na uproszczenie Architektury Korporacyjnej organizacji i jest orężem w walce z IT Complexity.&lt;br /&gt;&lt;br /&gt;PS. Nie wiesz o co chodzi z kaczką? Obejrzyj prezentację :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8879471407851298493?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8879471407851298493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8879471407851298493' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8879471407851298493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8879471407851298493'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/11/prostota-w-architekturze.html' title='Prostota w architekturze'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/TOVsU6MoNcI/AAAAAAAACGM/9fQnW0Vokuw/s72-c/giant-hugh-bath-duck-32cm-the-largest-bath-toy--417-p.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5238052037085882299</id><published>2010-10-31T17:16:00.000+01:00</published><updated>2010-10-31T17:16:34.212+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><category scheme='http://www.blogger.com/atom/ns#' term='Gradle'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Hibernate moves to Gradle</title><content type='html'>Recently Hibernate developers has decided to switch build tool. What's interesting the switch is not from &lt;a href="http://maven.apache.org/"&gt;Maven &lt;/a&gt;2 to Maven 3 (which was released earlier this month). Apparently they needed whole new approach to build software, so they chose &lt;a href="http://www.gradle.org/"&gt;Gradle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think it's great opportunity for that build tool. I've attended one of Hans Dockter&amp;nbsp;- the author of Gradle - presentations, the tool&amp;nbsp;always&amp;nbsp;seemed interesting but it lacked prove that can be used in real world project. I think that Hibernate's team decision can be game changer for &lt;a href="http://www.gradle.org/"&gt;Gradle &lt;/a&gt;and we will see more projects choosing that tool. Good luck &lt;a href="http://www.gradle.org/"&gt;Gradle&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;More info:&amp;nbsp;&lt;a href="http://www.dzone.com/links/r/the_switch_to_gradle_a_good_move_for_hibernate.html"&gt;The Switch to Gradle: A Good Move for Hibernate?&lt;/a&gt;&lt;br /&gt;&lt;a href="http://community.jboss.org/wiki/Gradlewhy"&gt;Steve Ebersole reasons the switch&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5238052037085882299?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5238052037085882299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5238052037085882299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5238052037085882299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5238052037085882299'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/10/hibernate-moves-to-gradle.html' title='Hibernate moves to Gradle'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-764348004770590899</id><published>2010-10-27T21:36:00.001+02:00</published><updated>2010-10-27T21:37:28.983+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Productive Programmer'/><category scheme='http://www.blogger.com/atom/ns#' term='angry monkey'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Angry Monkeys, Once Again</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://monkeyc.com/MonkeyGun.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://monkeyc.com/MonkeyGun.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Few days ago I was thinking about experiment called "angry monkeys" and today I accidentally found it, so I republish it once again. I bet you already know it but what the hell, read it once again, it won't hurt ;-)&lt;br /&gt;&lt;div&gt;&lt;a href="http://eawithatouch.blogspot.com/2008/06/story-of-5-monkeys.html"&gt;Story of 5 Monkeys&lt;/a&gt;&amp;nbsp;(English&amp;nbsp;lang)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I wrote some time ago about it in polish after I read this story in &lt;a href="http://www.amazon.com/Productive-Programmer-Theory-Practice-OReilly/dp/0596519788?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Productive Programmer&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0596519788" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; book. &lt;a href="http://pawelzubkiewicz.blogspot.com/2009/01/angry-monkeys-stroy-experiment.html"&gt;Here is that post&lt;/a&gt;&amp;nbsp;(Polish lang).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;And remember: Don't be angry monkey yourself!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-764348004770590899?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/764348004770590899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=764348004770590899' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/764348004770590899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/764348004770590899'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/10/angry-monkeys-once-again.html' title='Angry Monkeys, Once Again'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5571473479972723630</id><published>2010-10-25T23:30:00.001+02:00</published><updated>2010-10-25T23:33:34.898+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Retreat'/><category scheme='http://www.blogger.com/atom/ns#' term='mockito'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Code Retreat 2010 follow up</title><content type='html'>Kontynuacja poprzedniego posta o Code Retreat.&lt;br /&gt;&lt;br /&gt;Po &lt;b&gt;pierwsze &lt;/b&gt;zapomniałem podać linka do zdjęć z eventu, więc, znajdziecie je tutaj&amp;nbsp;&lt;a href="http://picasaweb.google.com/pan.zupa/CodeRetreat2010#"&gt;http://picasaweb.google.com/pan.zupa/CodeRetreat2010#&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Po &lt;b&gt;drugie &lt;/b&gt;Grzesiek zrobił filmik pokazujący jak wyglądały warsztaty&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nu5pzhWIK5s?fs=1&amp;amp;hl=pl_PL&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/nu5pzhWIK5s?fs=1&amp;amp;hl=pl_PL&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Po &lt;b&gt;trzecie &lt;/b&gt;tutaj jest link do posta na temat&amp;nbsp;&lt;a href="http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/"&gt;”TDD as if you meant it”&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Po &lt;b&gt;czwarte &lt;/b&gt;zostałem poproszony o przybliżenie &lt;i&gt;londyńskiej szkoły mockowania&lt;/i&gt;.&lt;br /&gt;Zatem pod czas Code Retreat Szczepan miał krótkie wystąpienie, gdzie prezentował wykorzystanie Mockito do testowania. Mockito wykorzystuje mechanizmy &lt;i&gt;interface discovery &lt;/i&gt;&amp;nbsp;czyli pozwala mockować klasy, które jeszcze nie istnieją ale w domyśle będą implementować dany interfejs. Generalnie, z tego co zrozumiałem (pewnie mało ;-) jest to świetna metoda (wpisująca się w Lean bo eliminuje &lt;i&gt;waste &lt;/i&gt;- moim zdaniem) na prototypowanie &lt;i&gt;designu &lt;/i&gt;klas. Zanim zaimplementujemy jakikolwiek konkretny kod (potencjalny &lt;i&gt;waste&lt;/i&gt;) testujemy czy nasze rozwiązanie w&amp;nbsp;ogóle&amp;nbsp;się trzyma przysłowiowej kupy.&lt;br /&gt;Jeśli się trzyma to wtedy za pomocą TDD implementujemy&amp;nbsp;konkretne&amp;nbsp;klasy i metody. Jeśli się nie trzyma to zaczynamy od nowa, plus jest taki ze nie napisaliśmy zbyt dużo kodu, więc &lt;i&gt;waste &lt;/i&gt;jest mały.&lt;br /&gt;&lt;br /&gt;Ale to jest tylko mój sposób patrzenia na to.. jak się wpisze "londyńska szkoła mockowania" w googla to wyskakuje mój blog... więc generalnie słabo. Trzeba poszperać w sieci. Może ta książka też rzuci troche światła na ten problem&amp;nbsp;&lt;a href="http://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Growing Object-Oriented Software, Guided by Tests&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0321503627" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;br /&gt;&lt;br /&gt;Po &lt;b&gt;piąte&lt;/b&gt;, przez przypadek znalazłem&amp;nbsp;&lt;a href="http://www.slideshare.net/avalanche123/clean-code-5281847"&gt;fajną prezentacj&lt;/a&gt;e o podstawach testowania i dobrego, czytelnego kodu.&amp;nbsp;Nawet w PHP się da ;-) Taki bonus dla paru kolegów z pracy ;-P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5571473479972723630?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5571473479972723630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5571473479972723630' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5571473479972723630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5571473479972723630'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/10/code-retreat-2010-follow-up.html' title='Code Retreat 2010 follow up'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6318485528697618466</id><published>2010-10-25T18:15:00.000+02:00</published><updated>2010-10-25T18:15:45.139+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Retreat'/><title type='text'>Code Retreat 2010 już za nami</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Code Retreat 2010 Wrocław się zakończyło pełnym sukcesem. Bardzo mnie to cieszy. Był to pierwszy event tego typu w którym brałem udział „z drugiej strony” czyli jako organizator. Oczwiście to nie była tylko moja praca, jak już wcześniej pisałem, warsztaty organizowały cztery osoby: Grzesiek, Łukasz, Mateusz i ja (skromny autor tego postu). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Dziś miałem okazję poszperać trochę w sieci i znalazłem kilka postów na blogach uczestników. Generalnie same pozytywne opinie, jak nie wierzycie to sami sprawdzcie:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;a href="http://mstachniuk.blogspot.com/2010/10/wrazenia-po-coderetreat-we-wrocawiu.html"&gt;http://mstachniuk.blogspot.com/2010/10/wrazenia-po-coderetreat-we-wrocawiu.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;a href="http://www.agilers.com/teamblog/pierwsze-code-retreat-we-wroclawiu-juz-za-nami/"&gt;http://www.agilers.com/teamblog/pierwsze-code-retreat-we-wroclawiu-juz-za-nami/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;a href="http://lammichalfranc.wordpress.com/2010/10/24/coderetreat-2010-wroclaw/"&gt;http://lammichalfranc.wordpress.com/2010/10/24/coderetreat-2010-wroclaw/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Ponieważ wpisy są dość obszerne i świetnie relacjonują przebieg Code Retreat nie zamierzam tutaj jeszcze raz opisywać, co i jak robiliśmy na warsztatach.Tym bardziej, że zostanie stworzony oficjalny materiał opisujący cały event :-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Korzystając z okazji zamierzam podziękować wszystkim, którym się chciało wstać tak wcześnie w sobotę i przyjść do Hotelu Patio. Na Twitterze napisałem, że było nas 61 osób – pomyliłem się, w rzeczywistości było nas 51. Szkoda! Dziewięć miejsc się zmarnowało. Ci którzy nie przyszli mogą czuć się źle – zablokowaliście możliwość uczestnictwa innym. Shame on you , guys!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Pragnę też podziękować naszemu sposorowi – firmie Tieto – bez której Code Retreat na pewno nie odbyłby się z takim rozmachem. Dziękuję za zaufanie i wolną rękę w realizacji naszych pomysłów.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Dziękuję również naszym gościom Marcinowi Naglikowi, Szczepanowi Faberowi, Marcinowi Niebudkowi za przybycie i szerzenie wiedzy oraz dobrych praktyk wśród uczestników, choć tak na prawdę na Code Retreat każdy jest tak samo ważny i od każdego można się wiele nauczyć, co z resztą sami goście podkreślali :-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Pomimo tego, że organizowałem event i momentami musiałem doglądać wielu spraw znalazłem też czas aby poprogramować w parach, choć tylko 3 sesje. Osobiście dzięki CodeRetreat poszerzyłem swoją wiedzę w dziedzinie testowania. Dowiedziałem się o kompletnie nowych dla mnie rzeczach, czyli o &lt;i style="mso-bidi-font-style: normal;"&gt;TDD as if you meant it&lt;/i&gt; &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;oraz o &lt;i style="mso-bidi-font-style: normal;"&gt;londyńskiej szkole mockowania&lt;/i&gt;. Oba tematy jak najbardziej do dalszego obadania. Pierwszym zainteresował nas (bo nie tylko mnie) Dariusz Mielniczek, o drugim natomiast opowiadał Szczepan Faber, z którym miałem okazję w czasie jednej z sesji poćwiczyć testowanie zgodne z takim podejściem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL" style="mso-ansi-language: PL;"&gt;Tutaj jest wpis Grześka Dziemidowicza (też organizatora) na temat Code Retreat &lt;a href="http://agilesurfing.pl/2010/agile/code-retreat/"&gt;http://agilesurfing.pl/2010/agile/code-retreat/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6318485528697618466?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6318485528697618466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6318485528697618466' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6318485528697618466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6318485528697618466'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/10/code-retreat-2010-juz-za-nami.html' title='Code Retreat 2010 już za nami'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3215469424648632612</id><published>2010-10-19T14:27:00.001+02:00</published><updated>2010-10-19T14:30:36.134+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Retreat'/><title type='text'>Pierwsze w Polsce warsztaty Code Retreat</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_EEfMPS_r4rA/TL2HhFyWAuI/AAAAAAAACCc/mJfMl_EfRgU/s1600/code+retreat.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/TL2HhFyWAuI/AAAAAAAACCc/mJfMl_EfRgU/s320/code+retreat.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Ponad dwa miesiące temu powstała idea zorganizowania we Wrocławiu warsztatów Code Retreat. Pomysłodawcą był &lt;a href="http://agilesurfing.pl/"&gt;Grzesiek Dziemidowicz&lt;/a&gt;.&amp;nbsp;We współpracy z Łukaszem Szydło oraz Mateuszem Gałkiem, czyli przy współpracy Grupy Kunszt oraz Wrocław JUG,&amp;nbsp;zaczęliśmy&amp;nbsp;przygotowania.&lt;br /&gt;&lt;br /&gt;Dosyć szybko udało nam się pozyskać wyłącznego sponsora - firmę &lt;a href="http://tieto.pl/"&gt;Tieto&lt;/a&gt;. Sponsor, wiadomo, jest warunkiem koniecznym ;-) Potem kolejne rzeczy, czyli sala,&amp;nbsp;strona&amp;nbsp;www, rejestracja, koszulki... się potoczyło, dziesiątki maili i telefonów.&lt;br /&gt;&lt;br /&gt;Dziś już wszystkie krytyczne kwestie są ustalone i mogę śmiało napisać, że Pierwszy w Polsce ogólnodostępny Code Retreat się odbędzie. Ba! Jestem nawet pewien, że zostanie bardzo pozytywnie odebrany i będą kolejne edycje ;-)&lt;br /&gt;&lt;br /&gt;Dzięki funduszom od &lt;a href="http://tieto.pl/"&gt;Tieto &lt;/a&gt;mamy do&amp;nbsp;dyspozycji&amp;nbsp;dwie sale w hotelu w samym centrum Wrocławia, a cały &lt;b&gt;event jest bezpłatny&lt;/b&gt;. Od uczestników wymagamy tylko laptopów oraz podstawowej wiedzy.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Warsztaty już w najbliższą sobotę 23 października od godziny 8:00 rano.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pełną notkę prasową dotyczącą wydarzenia można znaleźć &lt;a href="http://jdn.pl/node/2026"&gt;tutaj&lt;/a&gt;.&lt;br /&gt;Natomiast strona www warsztatów to&amp;nbsp;&lt;a href="http://coderetreat.wroclaw.pl/"&gt;http://coderetreat.wroclaw.pl/&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3215469424648632612?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3215469424648632612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3215469424648632612' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3215469424648632612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3215469424648632612'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/10/pierwsze-w-polsce-warsztaty-code.html' title='Pierwsze w Polsce warsztaty Code Retreat'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/TL2HhFyWAuI/AAAAAAAACCc/mJfMl_EfRgU/s72-c/code+retreat.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6321182707488147528</id><published>2010-09-11T20:14:00.008+02:00</published><updated>2010-09-18T10:46:33.543+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iiba'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='babok'/><category scheme='http://www.blogger.com/atom/ns#' term='analiza biznesowa'/><category scheme='http://www.blogger.com/atom/ns#' term='business analysis'/><title type='text'>Przewodnik po analizie biznesowej BABOK</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://digart.img.digart.pl/data/img/vol3/98/50/miniaturki400/504348.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://digart.img.digart.pl/data/img/vol3/98/50/miniaturki400/504348.jpg" width="126" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span lang="PL"&gt;Wpisując BABOK w Google ograniczając się do polskiego języka uzyskamy informacje, że BABOK to starośląskie określenie na diabła. Na wikisłowniku przeczytamy &lt;a href="http://www.blogger.com/goog_1878803436"&gt;„&lt;/a&gt;&lt;i&gt;&lt;a href="http://pl.wiktionary.org/wiki/babok"&gt;Jak byłem mały, to mnie rodzice babokiem straszyli”&lt;/a&gt;&lt;/i&gt;. Ten artykuł nie będzie dotyczył jednak legend i straszydeł, jego tematem jest przewodnik po analizie biznesowej Business Analysis Body of Knowledge, w skrócie BABOK Guide.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1&gt;&lt;span lang="PL"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Co to jest BABOK?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="MsoNoSpacing"&gt;&lt;span lang="PL"&gt;BABOK&amp;nbsp;&lt;/span&gt;czyli&amp;nbsp;&lt;i&gt;&lt;b&gt;&lt;a href="http://www.theiiba.org/AM/Template.cfm?Section=Body_of_Knowledge"&gt;Business Analysis Body of Knowledge&lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&amp;nbsp;jest najbardziej kompletnym zbiorem wiedzy na temat profesji analizy biznesowej. Spisany przez praktyków odzwierciedla aktualnie uznane i szeroko wykorzystywane praktyki analizy biznesowej. Podobnie jak w przypadku innych BOK’ów, czyli Body of Knowledge, jest stale rozwijany przez grupę ekspertów z dziedziny. Przewodnik po analizie biznesowej opisuje dziedzinę profesji analityka biznesowego. Poza opisem najlepszych praktyk, wprowadza taksonomię oraz definiuje umiejętności oraz kompetencje dobrego analityka.&lt;/div&gt;&lt;h1&gt;&lt;span lang="PL"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Co to jest IBAA?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;BABOK został stworzony dzięki inicjatywnie &lt;a href="http://www.theiiba.org/"&gt;International Institute of Business Analysis&lt;/a&gt;, IIBA. Instytut z&lt;/span&gt;&lt;span lang="PL"&gt;ostał założony w październiku 2003 roku, jako organizacja non-profit. Jest niezależnym stowarzyszeniem zawodowym mającym na celu rozwój i promowanie dziedziny &lt;i&gt;analizy biznesowej&lt;/i&gt;. Obecnie w Polsce działa &lt;a href="http://warsaw.theiiba.org/"&gt;zlokalizowana gałąź IIBA&lt;/a&gt; tzw. Chapter liczący sobie kilkudziesięciu członków.&lt;/span&gt;&lt;/div&gt;&lt;h1&gt;&lt;span lang="PL"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Przegląd BABOKa&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.amazon.com/Guide-Business-Analysis-Knowledge%C2%AE-BABOK%C2%AE/dp/0981129218?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img alt="A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide)" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=0981129218&amp;amp;tag=pawezubkblog-20" style="cursor: move;" /&gt;&lt;/a&gt;&lt;span lang="PL"&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0981129218" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;Celem przewodnika &lt;a href="http://www.amazon.com/Guide-Business-Analysis-Knowledge%C2%AE-BABOK%C2%AE/dp/0981129218?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;BABOK &lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0981129218" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;jest opis i definicja analizy biznesowej, jako dziedziny. Nie próbuje on definiować obowiązków osoby zatrudnionej na stanowisku „analityk biznesowy”, ponieważ te mogą się bardzo różnić pomiędzy przedsiębiorstwami. Analiza biznesowa może być wykonywana przez osoby zatrudnione na takich stanowiskach jak analityk systemów, analityk procesów, kierownik projektu, kierownik produktu, programista, analityk QA, architekt biznesowy lub konsultant. Dlatego BABOK systematyzuje wiedzę w sposób generyczny.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;BABOK Guide opisuje &lt;i&gt;&lt;b&gt;obszary wiedzy&lt;/b&gt;&lt;/i&gt; (ang. Knowledge area) analizy biznesowej, związane z nimi &lt;i&gt;&lt;b&gt;zadania&lt;/b&gt;&lt;/i&gt;&lt;b&gt; &lt;/b&gt;(ang. Tasks) i &lt;i&gt;&lt;b&gt;techniki&lt;/b&gt;&lt;/i&gt;&lt;b&gt; &lt;/b&gt;(ang. Techniques) oraz umiejętności niezbędne do ich skutecznej realizacji. Ważnym jest, aby wiedzieć, że BABOK nie jest metodyką. Nie próbuje on definiować procedury czy „podejścia” do problemu w postaci sekwencji następujących po sobie kroków jedynie wprowadza własną systematykę. W systematyce tej zostały uporządkowane i opisane powszechnie uznane i cenione praktyki analizy biznesowej.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;Nadrzędną jednostką grupująca są &lt;i&gt;&lt;b&gt;obszary wiedzy&lt;/b&gt;&lt;/i&gt; (Knowledge areas). &amp;nbsp;Stanowią one logiczny podział na części analizy. Każdy Obszar wiedzy posiada zbiór przypisanych do niego &lt;i&gt;&lt;b&gt;zadań&lt;/b&gt;&lt;/i&gt;&lt;b&gt; &lt;/b&gt;(można je rozumieć również, jako działania). Realizując zadnie mamy do dyspozycji jedną lub więcej opisanych &lt;i&gt;&lt;b&gt;technik&lt;/b&gt;&lt;/i&gt;. Technika jest niskopoziomową czynnością zorientowaną na konkretny efekt, przykładem techniki jest Burza mózgów czy Modelowanie przypadków użycia. BABOK v.2 opisuje szczegółowo 34 techniki.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;W przewodniku BABOK znajdziemy sześć &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;obszarów wiedzy&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_EEfMPS_r4rA/TIvH-2qMV4I/AAAAAAAACBE/sYvMQ4LDmnM/s1600/babok.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="252" src="http://1.bp.blogspot.com/_EEfMPS_r4rA/TIvH-2qMV4I/AAAAAAAACBE/sYvMQ4LDmnM/s400/babok.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Źródło: BABOK Guide.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Business Analysis Planning and Monitoring &lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt;(&lt;i&gt;Rozdział 2&lt;/i&gt;) to obszar wiedzy obejmujący zagadnienia związane z planowaniem przebiegu analizy. W jego skład wchodzą takie czynności jak ustalenie niezbędnych zadań do wykonania oraz kolejności ich wykonania w celu uzyskania oczekiwanych efektów. Identyfikacja interesariuszy, wybór odpowiednich technik oraz procesu zarządzania wymaganiami, sposobu oceny postępu prac. Zadnia wchodzące w obręb tego obszaru wiedzy służą nadzorowi przebiegu wszystkich pozostały zadań analizy biznesowej.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Elicitation&lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt; (&lt;i&gt;Rozdział 3&lt;/i&gt;) opisuje, w jaki sposób analityk biznesowy pracuje z interesariuszami, aby zidentyfikować i zrozumieć ich troski (ang. concerns), oraz aby zrozumieć środowisko, w którym interesariusze pracują. Nadrzędnym celem tego obszaru wiedzy jest zapewnienie poprawnej identyfikacji i zrozumienia podstawowych, czasem ukrytych, potrzeb interesariuszy, a nie tylko zanotowanie ich „zachcianek”.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Requirements Management and Communication&lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt; (&lt;i&gt;Rozdział 4&lt;/i&gt;) opisuje w jaki sposób analityk biznesowy rozwiązuje konflikty, zarządza problemami oraz zmianami w celu zapewnienia porozumienia pomiędzy interesariuszami a zespołem projektowym co do rozwiązania. Ten obszar wiedzy zajmuje się również tematami komunikacji wymagań interesariuszom oraz zarządzaniem zdobytą przez analityka biznesowego wiedzą w celu późniejszego jej wykorzystania.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Enterprise Analysis&lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt; (&lt;i&gt;Rozdział 5&lt;/i&gt;) opisuje sposoby identyfikacji potrzeb biznesowych w organizacji, dopracowania i wyjaśnienia definicji potrzeby, oraz zdefiniowania zakresu rozwiązania (ang. solution scope) możliwego do zrealizowania i wdrożenia przez biznes. Ten obszar wiedzy skupia się na opisie definicji problemu biznesowego i jego analizie,&amp;nbsp; studium wykonalności, oraz określeniu zakresu rozwiązania. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Requirements Analysis&lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt; (&lt;i&gt;Rozdział 6&lt;/i&gt;) opisuje, w jaki sposób analityk biznesowy priorytetyzuje i stopniowo opracowuje wymagania interesariuszy oraz samego rozwiązania w celu umożliwienia zespołowi projektowemu zaimplementowania go w taki sposób, który spełni oczekiwania sponsora i interesariuszy. Wiąże się to z analizą wymagań oraz zdefiniowaniem rozwiązania, które je spełnia. Również w tym obszarze ma miejsce ocena stanu obecnego w celu stworzenia rekomendacji mających na celu poprawę oraz weryfikację i walidację ostatecznych wymagań. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span lang="PL"&gt;Solution Assessment and Validation &lt;/span&gt;&lt;/b&gt;&lt;span lang="PL"&gt;(&lt;i&gt;Rozdział 7&lt;/i&gt;) &lt;/span&gt;&lt;span lang="PL"&gt;opisuje, w jaki sposób analityk biznesowy ocenia za&lt;/span&gt;&lt;span lang="PL"&gt;proponowane rozwiązania, aby wybrać to, które najlepiej realizuje potrzeby biznesowe organizacji, identyfikuje obszary niezaadresowane (ang. gaps) oraz braki w rozwiązaniu, oraz określa niezbędne zmiany lub obejścia w rozwiązaniu. Ten obszar wiedzy również opisuje metody oceny rozwiązań wdrożonych na produkcje w celu sprawdzenia faktycznego poziomu realizacji potrzeb biznesowych, wyniki takich analiz mogą zostać przedstawione sponsorowi, aby ten mógł ocenić wydajność oraz efektywność wdrożonego rozwiązania.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;Na koniec, w przewodniku BABOK znajdziemy również opis podstawowych kompetencji, wiedzy oraz innych umiejętności niezbędnych w profesji analityka biznesowego, umożliwiających efektywną pracę w zawodzie - &lt;b&gt;Underlying Competencies &lt;/b&gt;(&lt;i&gt;Rozdział 8&lt;/i&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1&gt;&lt;span lang="PL"&gt;Podsumowanie&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;Moja przygoda z BABOKiem rozpoczęła się w momencie przygotowań do projektu analizy biznesowej dla jednego z klientów &lt;a href="http://qnh.pl/"&gt;firmy konsultingowej&lt;/a&gt; w której pracuję. Projekt poza dostarczeniem typowych produktów analizy miał również za zadanie przekazanie wiedzy z zakresu analizy biznesowej pracownikom naszego klienta. Wykorzystanie wiedzy i praktyk opisanych w przewodniku BABOK stało się trzonem merytorycznym tego projektu zarówno na etapie prac analitycznych jak i przekazania wiedzy o samej analizie biznesowej.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="PL"&gt;Wszystkich zainteresowanych analizą biznesową zachęcam do odwiedzenia polskiej strony IIBA oraz&amp;nbsp;przyjścia&amp;nbsp;na spotkanie organizowane przez jedną z lokalnych grup, więcej szczegółów na &lt;a href="http://warsaw.theiiba.org/"&gt;warsaw.theiiba.org&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;span lang="PL"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="PL"&gt;Co do samego przewodnika BABOK wiem, że wśród członków polskiego Chapteru powstała idea przetłumaczenia go nasz ojczysty język. Póki, co mamy tylko wersję angielskojęzyczną do dyspozycji.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6321182707488147528?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6321182707488147528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6321182707488147528' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6321182707488147528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6321182707488147528'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/09/przewodnik-po-analizie-biznesowej-babok.html' title='Przewodnik po analizie biznesowej BABOK'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_EEfMPS_r4rA/TIvH-2qMV4I/AAAAAAAACBE/sYvMQ4LDmnM/s72-c/babok.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4221188899878239317</id><published>2010-09-03T10:02:00.000+02:00</published><updated>2010-09-03T10:02:14.913+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lady Java'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Lady Java</title><content type='html'>Apparently I've been sleeping past few weeks in a closet because I first watched &lt;i&gt;&lt;b&gt;Lady Java&lt;/b&gt;&lt;/i&gt; song today.&lt;br /&gt;&lt;br /&gt;If you've been sleeping in a closet too (or just working hard) here is your treat.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Mk3qkQROb_k?fs=1&amp;amp;hl=pl_PL&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Mk3qkQROb_k?fs=1&amp;amp;hl=pl_PL&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4221188899878239317?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4221188899878239317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4221188899878239317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4221188899878239317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4221188899878239317'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/09/lady-java.html' title='Lady Java'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4243309523055440252</id><published>2010-08-29T19:37:00.001+02:00</published><updated>2010-08-29T19:48:18.026+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Save Google Wave</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_EEfMPS_r4rA/THqaj8433UI/AAAAAAAACAg/11y-ahv1jPU/s1600/google_wave_logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/THqaj8433UI/AAAAAAAACAg/11y-ahv1jPU/s200/google_wave_logo.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you like me are &lt;a href="http://gwave.com/"&gt;Google Wave&lt;/a&gt; enthusiast go to the&amp;nbsp;&lt;a href="http://www.blogger.com/goog_610630250"&gt;http://www.&lt;/a&gt;&lt;a href="http://www.blogger.com/goog_610630250"&gt;savegooglewave&lt;/a&gt;&lt;a href="http://.com/"&gt;.com&lt;/a&gt;/ and&lt;b&gt; &lt;/b&gt;&lt;i&gt;&lt;b&gt;Join the Cause&lt;/b&gt;&lt;/i&gt;&lt;b&gt;!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I think Google Wave has big potential to be great, new way of communication. In fact it already is! It just lacks good email integration solution and marketing support. Any way if you like Google Wave go and show where you stand!&lt;br /&gt;&lt;br /&gt;Also you can&amp;nbsp;search&amp;nbsp;twitter for&amp;nbsp;&lt;i&gt;#savegooglewave.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;PS. &lt;a href="http://www.screencast.com/users/rjhenry/folders/Jing/media/48e0de40-a4d3-4b79-80cf-26c26fee864b"&gt;Here is short webcast presenting MS Outlook plugin for integration with Wave&lt;/a&gt; - quite cool.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4243309523055440252?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4243309523055440252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4243309523055440252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4243309523055440252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4243309523055440252'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/08/save-google-wave.html' title='Save Google Wave'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/THqaj8433UI/AAAAAAAACAg/11y-ahv1jPU/s72-c/google_wave_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6893226262684483652</id><published>2010-08-14T14:56:00.001+02:00</published><updated>2010-08-14T14:57:25.421+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='journal'/><category scheme='http://www.blogger.com/atom/ns#' term='The Architecture Journal'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>The Architecture Journal #24</title><content type='html'>Also today another issue of &lt;a href="http://www.architecturejournal.net/"&gt;The Architecture Journal&lt;/a&gt; from Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The Architecture Journal is an independent platform for free thinkers and practitioners of IT architecture. New editions are issued quarterly with articles designed to offer perspective, share knowledge, and help you learn the discipline and pursue the art of IT architecture. The Architecture Journal reaches over 50,000 subscribers worldwide.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Click on the widget and select full-screen. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object style="height: 403px; width: 600px;"&gt;&lt;param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000&amp;amp;documentId=100814095800-50bf87dcd4164198a543d97852aa5384&amp;amp;docName=taj_24&amp;amp;username=panzupa&amp;amp;loadingInfoText=TAJ&amp;amp;et=1281780206739&amp;amp;er=24" /&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="menu" value="false"/&gt;&lt;embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:600px;height:403px" flashvars="mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000&amp;amp;documentId=100814095800-50bf87dcd4164198a543d97852aa5384&amp;amp;docName=taj_24&amp;amp;username=panzupa&amp;amp;loadingInfoText=TAJ&amp;amp;et=1281780206739&amp;amp;er=24"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="text-align: left; width: 600px;"&gt;&lt;a href="http://issuu.com/panzupa/docs/taj_24?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000" target="_blank"&gt;Open publication&lt;/a&gt; - Free &lt;a href="http://issuu.com/" target="_blank"&gt;publishing&lt;/a&gt; - &lt;a href="http://issuu.com/search?q=it" target="_blank"&gt;More it&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6893226262684483652?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6893226262684483652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6893226262684483652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6893226262684483652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6893226262684483652'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/08/architecture-journal-24.html' title='The Architecture Journal #24'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4937399677627884779</id><published>2010-08-14T11:39:00.000+02:00</published><updated>2010-08-14T11:39:40.987+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='journal'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='SDJ'/><title type='text'>Kolejny Software Developer's Journal - SDJ 09.2010</title><content type='html'>Kolejny numer bezpłatnej&amp;nbsp;publikacji. Tym razem jak na mój gust za mało o Javie. Też nie widzę kontynuacji&amp;nbsp;artykułu&amp;nbsp;"Wiosna z drugą twarzą w chmurach" - szkoda!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object style="width:600px;height:433px" &gt;&lt;param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000&amp;amp;documentId=100814093042-f0ce3f6b20de42589ca20a16b6e7e1f6&amp;amp;docName=sdj_2010_09&amp;amp;username=panzupa&amp;amp;loadingInfoText=SDJ&amp;amp;et=1281778670837&amp;amp;er=47" /&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="menu" value="false"/&gt;&lt;embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:600px;height:433px" flashvars="mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000&amp;amp;documentId=100814093042-f0ce3f6b20de42589ca20a16b6e7e1f6&amp;amp;docName=sdj_2010_09&amp;amp;username=panzupa&amp;amp;loadingInfoText=SDJ&amp;amp;et=1281778670837&amp;amp;er=47"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="width:600px;text-align:left;"&gt;&lt;a href="http://issuu.com/panzupa/docs/sdj_2010_09?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;autoFlip=true&amp;amp;autoFlipTime=6000" target="_blank"&gt;Open publication&lt;/a&gt; - Free &lt;a href="http://issuu.com" target="_blank"&gt;publishing&lt;/a&gt; - &lt;a href="http://issuu.com/search?q=sdj" target="_blank"&gt;More sdj&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4937399677627884779?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4937399677627884779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4937399677627884779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4937399677627884779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4937399677627884779'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/08/kolejny-software-developers-journal-sdj.html' title='Kolejny Software Developer&apos;s Journal - SDJ 09.2010'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4764256506681027096</id><published>2010-08-13T17:21:00.000+02:00</published><updated>2010-08-13T17:21:54.982+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='97 Things Every Software Architect Should Know'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>97 Things Every Software Architect Should Know - Free eBook</title><content type='html'>One month ago I've &lt;a href="http://pawelzubkiewicz.blogspot.com/2010/07/97-things-every-software-architect.html"&gt;shared with you my free version&lt;/a&gt; of book&amp;nbsp;&lt;a href="http://www.amazon.com/Things-Every-Software-Architect-Should/dp/059652269X?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;97 Things Every Software Architect Should Know: Collective Wisdom from the Experts&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=059652269X" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;. You can still download my free version from the box on the right side of page.&lt;br /&gt;&lt;br /&gt;This time I just wanted to share some statistics. The PDF version has been downloaded (at least) &lt;b&gt;92&lt;/b&gt; times. Mobipocket version (compatible with&amp;nbsp;&lt;a href="http://www.amazon.com/Wireless-Reading-Graphite-Globally-Generation/dp/B002GYWHSQ?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Kindle DX&lt;/a&gt;) has &lt;b&gt;19&lt;/b&gt; downloads on my counter.&amp;nbsp;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002GYWHSQ" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;br /&gt;&lt;br /&gt;I don't know if it's "great success" but i think it was worth it. It was fun to write&amp;nbsp;something&amp;nbsp;like&amp;nbsp;web-crawler to get all the chapters from website automatically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4764256506681027096?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4764256506681027096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4764256506681027096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4764256506681027096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4764256506681027096'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/08/97-things-every-software-architect.html' title='97 Things Every Software Architect Should Know - Free eBook'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6412245183123564451</id><published>2010-07-27T20:32:00.000+02:00</published><updated>2010-07-27T20:32:12.133+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ITIL v.3'/><category scheme='http://www.blogger.com/atom/ns#' term='MindMap'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>ITIL v.3 MindMap</title><content type='html'>Today I found very useful material for anyone interested in ITIL v.3. Some people at&amp;nbsp;http://itservicetoday.blogs.com/itil/&amp;nbsp;prepared interactive MindMap that covers all main concerns of ITIL v.3. If you don't know what MindMap is, please click &lt;a href="http://en.wikipedia.org/wiki/Mind_map"&gt;here (wikipedia.org)&lt;/a&gt;. This interactive MindMap allows you to go deeper in each branch for more detail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_EEfMPS_r4rA/TE8lK-ZFYuI/AAAAAAAAB_I/6rF-7Z57qdQ/s1600/itil_mindmap.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="219" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/TE8lK-ZFYuI/AAAAAAAAB_I/6rF-7Z57qdQ/s320/itil_mindmap.PNG" width="320" /&gt;&lt;/a&gt;I think it's&amp;nbsp;excellent&amp;nbsp;aid for anybody preparing for ITIL Foundation certificate (&lt;a href="http://pawelzubkiewicz.blogspot.com/2010/04/i-am-preparing-for-itil-v3-foundation.html"&gt;here is my earlier post about my preparation, but it's in Polish&lt;/a&gt;) which helps in reviewing material and better comprehension of the subject.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://itservicetoday.blogs.com/files/itil-v3-interactive-mindmap.pdf"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;MindMap can be accessed here.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;That PDF file has&amp;nbsp;embedded&amp;nbsp;some flash object so you have to enable security features to see it properly.&lt;br /&gt;&lt;br /&gt;Source:&amp;nbsp;&lt;a href="http://itservicetoday.blogs.com/itil/2010/07/the-itil-v3-interactive-mindmap.html"&gt;http://itservicetoday.blogs.com/itil/2010/07/the-itil-v3-interactive-mindmap.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6412245183123564451?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6412245183123564451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6412245183123564451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6412245183123564451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6412245183123564451'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/itil-v3-mindmap.html' title='ITIL v.3 MindMap'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EEfMPS_r4rA/TE8lK-ZFYuI/AAAAAAAAB_I/6rF-7Z57qdQ/s72-c/itil_mindmap.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8619683658176833765</id><published>2010-07-22T15:55:00.007+02:00</published><updated>2011-01-12T19:48:52.564+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Kindle DX'/><category scheme='http://www.blogger.com/atom/ns#' term='ereader'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>New Kindle DX</title><content type='html'>&lt;a href="http://www.amazon.com/Wireless-Reading-Display-Globally-Generation/dp/B0015TG12Q?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img alt="Kindle DX Wireless Reading Device, Free 3G, 9.7&amp;quot; Display, White, 3G Works Globally – 2nd Generation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B0015TG12Q&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;&lt;a href="http://www.amazon.com/Wireless-Reading-Graphite-Globally-Generation/dp/B002GYWHSQ?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img alt="Kindle DX Wireless Reading Device, Free 3G, 9.7&amp;quot; Display, Graphite, 3G Works Globally – Latest Generation" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B002GYWHSQ&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002GYWHSQ" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;Today I found that there is newer version of &lt;a href="http://www.amazon.com/Wireless-Reading-Graphite-Globally-Generation/dp/B002GYWHSQ?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;Kindle DX&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002GYWHSQ" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;. It has better display and newer software. Now you can organize books and PDFs in collections (Praise the Lord!) and zoom PDF files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That also means that my &lt;a href="http://www.amazon.com/Wireless-Reading-Display-Globally-Generation/dp/B0015TG12Q?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;older, white version&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0015TG12Q" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; will get an update ;-)&lt;br /&gt;&lt;br /&gt;I really like Amazon for that it respects its customers and releases software updates even for older products.&amp;nbsp;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B0015TG12Q" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;&lt;br /&gt;&lt;br /&gt;And by the way, it's a lot cheaper now, which makes me a little bit sad because I've paid over $550 with shipping and leather cover for it. But I don't regret, I wouldn't hesitat to pay it once again. It was one of my best buy in my life :-)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;span style="font-size: large;"&gt;&lt;span style="color: #0b5394;"&gt;Update:&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;I've updated firmware of my Kindle DX to last 2.5.2. Unfortunately collections feature was disabled after update. Only registered devices have this feature enabled. I have US version of Kindle and I live in Europe, so I can't register my device. I had to hack a little my device. I used &lt;a href="http://www.mobileread.com/forums/showthread.php?t=87686"&gt;that tutorial&lt;/a&gt;, it's pretty straightforward. It took me 7 minutes to finish all steps and have collections feature unblocked on my sweet Kindle DX.&lt;br /&gt;Now I have all my books categorized. Everything is in order. It's great.&lt;br /&gt;&lt;br /&gt;Also I found that zoom in PDF files is not so cool as one might think. Main con is scrolling.I think I'm gonna use it occasionally.&lt;br /&gt;&lt;br /&gt;On the other hand I've noticed that overall performance of my Kindle DX has rise since update. Now it goes pretty fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8619683658176833765?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8619683658176833765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8619683658176833765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8619683658176833765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8619683658176833765'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/new-kindle-dx.html' title='New Kindle DX'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-395695863934392543</id><published>2010-07-22T15:18:00.001+02:00</published><updated>2010-07-22T15:21:56.674+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Preparing for TOGAF 9 Foundation Certificate</title><content type='html'>Today I read a questions asked on one of LinkedIn's forums about mock exams for TOGAF 9 certification.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/TOGAF-Version-Foundation-Study-Guide/dp/9087532318?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"&gt;&lt;img alt="TOGAF Version 9 Foundation Study Guide" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=9087532318&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;Since I've &lt;a href="http://pawelzubkiewicz.blogspot.com/2010/03/togaf-9-certified-great-success.html"&gt;passed few months ago that exam&lt;/a&gt; I decided to help people who want to get that certification too.&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=bil&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=9087532318" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;The best book in my humble opinion is &lt;a href="http://www.amazon.com/TOGAF-Version-Foundation-Study-Guide/dp/9087532318?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;TOGAF Version 9 Foundation Study Guide&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=9087532318" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; written by Rachel Harrison. It is good for start and covers only necessary in context of exam knowledge areas. It can be read and understood without priori knowledge of Enterprise Architecture or TOGAF. Book was specifically designed to help individuals prepare for certification and you can feel it. It has good structure, there are 13 main chapters plus some additional ones. After each chapter there are review questions, so you can check yourself if you understand material well. There are also two mock exams in the book.&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;u&gt;I've read that book twice and&amp;nbsp; pass mock exams few times before taking the real one.&amp;nbsp;&lt;/u&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;a href="http://www.amazon.com/Foundation-Preparation-Passing-Certified-ebook/dp/B002Q1YDGS?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=bil&amp;amp;camp=213689&amp;amp;creative=392969" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" target="_blank"&gt;&lt;img alt="TOGAF 9 Foundation Part 1 Exam Preparation Course in a Book for Passing the TOGAF 9 Foundation Part 1 Certified Exam - The How To Pass on Your First Try Certification Study Guide" src="http://ws.amazon.com/widgets/q?MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;Format=_SL160_&amp;amp;ASIN=B002Q1YDGS&amp;amp;tag=pawezubkblog-20" /&gt;&lt;/a&gt;There is also another book that covers topic of TOGAF 9 Basics. It is called&amp;nbsp;&lt;a href="http://www.amazon.com/Foundation-Preparation-Passing-Certified-ebook/dp/B002Q1YDGS?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;TOGAF 9 Foundation Part 1 Exam Preparation Course in a Book for Passing the TOGAF 9 Foundation Part 1 Certified Exam - The How To Pass on Your First Try Certification Study Guide&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B002Q1YDGS" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;. Pretty long name ;-)&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;The problem with that book is that I have a feeling that this book isn't entirely on a subject of TOGAF 9 Foundations exam. In my opinion there are some chunks from preceding version(s) of TOGAF. There are many typos and at least two wrong answers in mock exam.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;I read that book once and made mock exam (which is very hard) few times.&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;I definitely encourage you to read the first book if you're preparing by yourself to the TOGAF 9 Level 1 - Foundation exam.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-395695863934392543?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/395695863934392543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=395695863934392543' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/395695863934392543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/395695863934392543'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/preparing-for-togaf-9-foundation.html' title='Preparing for TOGAF 9 Foundation Certificate'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3929066656252861304</id><published>2010-07-13T22:00:00.006+02:00</published><updated>2010-08-25T08:42:09.633+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='97 Things Every Software Architect Should Know'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>97 Things Every Software Architect Should Know - free download</title><content type='html'>&lt;div class="MsoNormal"&gt;Yes! You don’t need to search torrents and rapidshare. Here you can download legal “version” of book “&lt;a href="http://www.amazon.com/Things-Every-Software-Architect-Should/dp/059652269X?ie=UTF8&amp;amp;tag=pawezubkblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;97 Things Every Software Architect Should Know&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=pawezubkblog-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=059652269X" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;” for free. &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;That’s possible because all texts that were printed in “97 Things Every Software Architect Should Know”  are licensed under a Creative Commons Attribution 3. Anyone can use them. So I did! &lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;As a source I used webpage &lt;a href="http://97things.oreilly.com/wiki/index.php/97_Things_Every_Software_Architect_Should_Know_-_The_Book"&gt;97 Things Every Software Architect Should Know - The Book&lt;/a&gt;. I wrote a Java application to extract articles from webpage to text file – it would be very tedious work to do it manually. Then I edited it in MS Word, subsequently I used Mobipocket Creator to make an eBook, so I could read it on my Kindle DX for free! There is also PDF version available.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;That exercise took me a dozen or so hours. Then I read it to verify if everything is ok.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Once again I want to emphasize that this is NOT illegal copy of O'Reilly Media’s book. It lacks pictures and authors bio’s. The texts were not copied from it either. My version has different order of articles then O’Reilly’s book (my version is compliant with webpage). If you want to support publisher/editor go and buy a book at http://oreilly.com/catalog/9780596522704.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Now good stuff. I want to share it with you, completely free of course – that’s a power of CCA license. Enjoy! &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;I’ve got only one request: please don’t link to files directly. Use that post address instead – I want to track how many times it would be downloaded.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;The files can be downloaded from a box on the right side. &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Looking forward for comments from you.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3929066656252861304?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3929066656252861304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3929066656252861304' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3929066656252861304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3929066656252861304'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/97-things-every-software-architect.html' title='97 Things Every Software Architect Should Know - free download'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2983484395028609631</id><published>2010-07-09T21:57:00.007+02:00</published><updated>2010-07-09T22:17:35.280+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='DropBox'/><title type='text'>DropBox - wirtualny dysk za darmo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EEfMPS_r4rA/TDd_lzIJ8uI/AAAAAAAAB-w/Ede2QLzzymE/s1600/dropbox.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 352px; height: 353px;" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/TDd_lzIJ8uI/AAAAAAAAB-w/Ede2QLzzymE/s400/dropbox.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5491998557957911266" /&gt;&lt;/a&gt;&lt;br /&gt;Dziś kolejny art poświęcony temu jak sobie ułatwić życie. Pewien czas temu borykałem się z problem przenoszenia plików między służbowym laptopem a domową maszyną.&lt;br /&gt;&lt;br /&gt;Właściwie gdzie tu problem ktoś może rzec? Przecież rozwiązań co nie miara. Niech wymienię kilka:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pendrive&lt;/li&gt;&lt;li&gt;SVN&lt;/li&gt;&lt;li&gt;Siec lokalna i udostępnianie plików &lt;/li&gt;&lt;li&gt;Wysłanie mailem&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;Coż niby każdy dobry i prosty. Niestety każdy jak dla mnie obarczony pewnym bagażem. I tak:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Pendrive&lt;/i&gt; – trzeba pamiętać o przegrywaniu nowych wersji i wtykać w gniazda usb&lt;/li&gt;&lt;li&gt;&lt;i&gt;SVN&lt;/i&gt; – rozwiązanie bardzo profesjonalne, niestety potrzeba serwera i to jeszcze z ograniczonym dostępem bo przecież nie chce aby ktoś oglądał moje pliki&lt;/li&gt;&lt;li&gt;&lt;i&gt;Sieć lokalna&lt;/i&gt; – wprawdzie mam w domu WiFI ale przecież wracać z pracy i od razu wyciągać laptopa i czekać aż się włączy i zacząć kopiować – komu się chce?&lt;/li&gt;&lt;li&gt;&lt;i&gt;Wysyłanie mailem&lt;/i&gt; – się nadaje dla paru plików ale nie dla dziesiątek&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Co więcej, moje wymaganie było bardziej skonkretyzowane w tej usłudze będę trzymać swoje książki PDF – i chce mieć do nich dostęp zawsze i wszędzie. Chce aby zmiany w mojej kolekcji się automagicznie synchronizowały – nie po to kończyłem studia aby kopiować pliki ręcznie i dbać o porządek w dwóch miejsach. Jestem przecież leniwy ;-P&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Okazało się, że istnieje idealne rozwiązanie dla mnie.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Co więcej jest darmowe!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Rozwiązaniem tym jest DropBox. &lt;/span&gt;&lt;br /&gt;Oferuje dużo więcej niż na początku chciałem czy potrzebowałem.&lt;br /&gt;DropBox to taki dysk wirtualny na sterydach. Osadzony gdzieś w chmurze Amazonu (o ile dobrze pamiętam) program przechowujący nasze pliki, automatycznie dbając o ich synchronizację i wersjonowanie. Do plików przechowywanych na DropBoxie możemy mieć dostęp z każdego komputera, który ma dostęp do internetu. Brzmi świetnie, prawda?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To nie wszystko. Zakładając konto na DropBoxie dostajemy 2 Giga Bajty (lub więcej, o tym później) kompletnie za darmo. Aby z nich łatwo korzystać najlepiej zainstalować na swoich komputerach aplikację kliencką (na każdy OS coś znajdziesz), jest też dostęp do plików przez WWW.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Aplikacja kliencka monitoruje wybrany katalog na dysku lokalnym i dba o jego synchronizację z serwerem. Tak więc gdy na swoim laptopie dodam jakiś plik do katalogu DropBox to jest on automatycznie wysyłany do serwera. Gdy wracam do domu i włączam swój drugi komputer, na którym też jest DropBox, to on sam pobiera z serwera nowy plik i w ten sposób na dwóch komputerach mam te same pliki. Nic nie muszę robić – DropBox mnie wyręcza!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Działa to bardzo szybko – wiadomo, zależy od możliwości połączenia sieciowego – jednak małe pliki się synchronizują w ciągu paru sekund! Za pewne zaleta chmury. Co więcej, aplikacja przesyła na serwer tylko tą część pliku, w której nastąpiła zmiana (jak SVN), przez co oszczędzamy czas zapisu, szczególnie jeśli pracujemy na dużych plikach.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Co więcej pliki w DropBoxie można udostępniać innym osobom. Jeśli nie mają jeszcze konta na DropBox to po prostu ściągają plik ze strony WWW.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Warto też wspomnieć o zabezpieczeniach. Generalnie z tego, co można wyczytać na ich stronie każdy plik tam wrzucony jest szyfrowany (AES-256), więc nawet pracownicy nie wiedzą co tam trzymasz ;-) Jeśli chcesz się dowiedzieć dokładnie jakie zabezpieczenia stosują kliknij tutaj &lt;a href="https://www.dropbox.com/features"&gt;https://www.dropbox.com/features&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Jak dostać więcej niż 2 giga – też za darmo?&lt;/span&gt;&lt;br /&gt;DropBox prowadzi promocję. Jeśli zachęcisz swoich znajomych (lub nie) do tego aby założyli konto  w systemie to dostaniesz 250 mega miejsca, za każde aktywne konto. Co więcej, każdy Twoj znajomy też dostanie 250 mega więcej tylko dlatego, że założył konto z Twojego polecania!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Czyli jak założysz sobie konto na DropBoxie z &lt;a href="https://www.dropbox.com/referrals/NTY2MTQwNjk"&gt;mojego polecania&lt;/a&gt; to Ty i ja dostaniemy po 250 mega gratis. Takie darmowe miejsce można sobie budować aż do &lt;span class="Apple-style-span"  style="font-size:large;"&gt;8 Giga&lt;/span&gt;. Zakładając konto nie z polecenia kogokolwiek dostaniesz tylko 2 giga.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Zatem zachęcam do zakładania konta z mojego polecania! Wystarczy, że klikniesz w ten link &lt;a href="https://www.dropbox.com/referrals/NTY2MTQwNjk"&gt;https://www.dropbox.com/referrals/NTY2MTQwNjk&lt;/a&gt; - Zyskasz Ty i ja ;-)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2983484395028609631?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2983484395028609631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2983484395028609631' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2983484395028609631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2983484395028609631'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/dropbox-wirtualny-dysk-za-darmo.html' title='DropBox - wirtualny dysk za darmo'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EEfMPS_r4rA/TDd_lzIJ8uI/AAAAAAAAB-w/Ede2QLzzymE/s72-c/dropbox.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6112951634997839147</id><published>2010-07-08T09:49:00.003+02:00</published><updated>2010-07-08T09:54:08.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='journal'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='SDJ'/><title type='text'>Nowy numer SDJ 2010.08 - za darmo</title><content type='html'>Kolejny numer Software Developers Journal. Wydawca już nas przyzwyczaił do tego, że za darmo ;-)&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object style="width:600px;height:433px" &gt;&lt;param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;documentId=100708074423-d086929db96649aa9d3ffdb62f0757ec&amp;amp;docName=sdj2010.08&amp;amp;username=panzupa&amp;amp;loadingInfoText=SDJ%2008%202010&amp;amp;et=1278575353342&amp;amp;er=35" /&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="menu" value="false"/&gt;&lt;embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:600px;height:433px" flashvars="mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;documentId=100708074423-d086929db96649aa9d3ffdb62f0757ec&amp;amp;docName=sdj2010.08&amp;amp;username=panzupa&amp;amp;loadingInfoText=SDJ%2008%202010&amp;amp;et=1278575353342&amp;amp;er=35"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="width:600px;text-align:left;"&gt;&lt;a href="http://issuu.com/panzupa/docs/sdj2010.08?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true" target="_blank"&gt;Open publication&lt;/a&gt; - Free &lt;a href="http://issuu.com" target="_blank"&gt;publishing&lt;/a&gt; - &lt;a href="http://issuu.com/search?q=polish" target="_blank"&gt;More polish&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6112951634997839147?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6112951634997839147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6112951634997839147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6112951634997839147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6112951634997839147'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/07/nowy-numer-sdj-201008-za-darmo.html' title='Nowy numer SDJ 2010.08 - za darmo'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4132802924687830018</id><published>2010-06-30T22:38:00.001+02:00</published><updated>2010-06-30T22:38:51.229+02:00</updated><title type='text'>Znalezione w sieci</title><content type='html'>Przed chwilą, przez przypadek znalazłem w sieci prezentację, na której byłem na Javarsovi w zeszłą sobotę. A ponieważ mi się podobała to ją tutaj umieszczam. &lt;br /&gt;&lt;br /&gt;Dla tych co znają Google Collections - teraz Guava, to raczej żadne nowości ;-)&lt;div style="width:425px" id="__ss_4651066"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/wiktor/lekcja-stylu-4651066" title="Lekcja stylu"&gt;Lekcja stylu&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse4651066" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lekcjastylu2-100630085220-phpapp01&amp;stripped_title=lekcja-stylu-4651066" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4651066" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=lekcjastylu2-100630085220-phpapp01&amp;stripped_title=lekcja-stylu-4651066" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/wiktor"&gt;wiktor&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4132802924687830018?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4132802924687830018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4132802924687830018' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4132802924687830018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4132802924687830018'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/06/znalezione-w-sieci.html' title='Znalezione w sieci'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2615956529275271645</id><published>2010-06-26T23:54:00.008+02:00</published><updated>2010-07-08T09:58:17.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='javarsovia'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Właśnie wróciłem z Javarsovii</title><content type='html'>&lt;p&gt;Tak! Właśnie wróciłem z Javarsovii - jak się okazało drugiej co do ilości uczestników konferencji Javowej w Europie. Gratulacje dla chłopaków i dziewczyn z Warszawa JUG i reszty organizatorów.&lt;/p&gt;&lt;p&gt;Więc wróciłem patrze do skrzynki mailowej, a tu wiadomość od szefa z filmikem z YouTube. Oto tym filmikiem, dla mnie bomba! :-)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KrfpnbGXL70&amp;hl=pl_PL&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KrfpnbGXL70&amp;hl=pl_PL&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;BTW: Poznałem dziś gościa, który w Google zajmuje się bloggerem i blogspotem (jest jakaś różnica?). Dobra robota, gratuluje ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2615956529275271645?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2615956529275271645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2615956529275271645' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2615956529275271645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2615956529275271645'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/06/wasnie-wrociem-z-javarsovii.html' title='Właśnie wróciłem z Javarsovii'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2570591946171268424</id><published>2010-06-22T18:36:00.004+02:00</published><updated>2010-07-08T09:55:43.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='HideIpVPN'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='darmowe'/><category scheme='http://www.blogger.com/atom/ns#' term='BBC'/><title type='text'>Jak oglądać BBC w Polsce?</title><content type='html'>Tym razem post o tematyce rozrywkowej. Jako fan Formuły 1 jestem troszkę zażenowany poziomem polskiego studio i transmisji. Nie przeszkadzało mi to aż tak bardzo do momentu kiedy to przypadkiem ściągnąłem z sieci zgraną transmisję wyścigów F1 z BBC. Powaliło mnie! Ten klimat! Czułem się prawie jak na wyścigu! Wywiady na luzie z kierowcami i to przed samym wyścigiem, mechanicy, menadżerowie, gwiazdy i gwiazdki – wszystko prosto z alei serwisowej przed samym wyścigiem. Sam wyścig też okraszony świetnym komentarzem, m.in. przez byłego kierowcę F1 David’a Coulthard’a. Po prostu świetnie. Wyobraźcie sobie dla porównania oglądanie skoków narciarskich w TVP i Hiszpańskiej telewizji (o ile w ogóle oni transmitują?). Już wiecie, o co mi chodzi?&lt;br /&gt;Wszystko pięknie, tylko problem w tym, że w Polsce nie da się mieć BBC!&lt;br /&gt;Dużo czasu upłynęło do momentu, kiedy to przypadkiem znalazłem w sieci rozwiązanie tego problemu. Banalnie proste rozwiązanie, które łączy ze sobą dwa fakty.&lt;br /&gt;&lt;br /&gt;1. BBC udostępnia na żywo &lt;a href="http://news.bbc.co.uk/sport1/hi/motorsport/formula_one/default.stm"&gt;transmisje F1 na swojej platformie BBC iPlayer&lt;/a&gt;. Niestety musisz mieć brytyjskie IP.&lt;br /&gt;2. Są firmy, które udostępniają VPN z IP różnych krajów.&lt;br /&gt;&lt;br /&gt;Chyba już się domyślacie sami rozwiązania? Wystarczy mieć konto VPN z brytyjskim IP i można spokojnie oglądać BBC!!! Genialnie!! I to nie tylko dla fanów F1, ja np. bardzo lubię brytyjski humor. Poza tym mamy TopGear oraz pewnie dużo mniej znany polskiej publiczności program jednego z prezenterów TopGear - &lt;a href="http://www.bbc.co.uk/programmes/b00hvtgh"&gt;Richard Hammond's Engineering Connections&lt;/a&gt; – na prawdę super.&lt;br /&gt;O zaletach BBC można by się długo rozpisywać, ale jeszcze opisze samo rozwiązanie. Miałem okazję testować przez miesiąc konto VPN w firmie HideIpVPN (&lt;a href="http://www.hideipvpn.com/"&gt;http://www.hideipvpn.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Muszę przyznać, że działało to wszystko fenomenalnie. Po pierwsze nie trzeba nic instalować na swoim komputerze. Dostajemy parametry mailem, ustawiamy nowe połączenie i wciskamy Connect – od tej chwili możemy się cieszyć brytyjskim IP. Przy najmniej u mnie na Windows 7 tak to pięknie jest.&lt;br /&gt;&lt;br /&gt;Sam usługa działa bardzo dobrze. Transfery są na poziomie 1MB/sekundę, co spokojnie pozwala na oglądanie BBC iPlayer  w wysokiej rozdzielczości. Bardzo rzadko zdarzy się, że się połączenie rozłączy.&lt;br /&gt;&lt;br /&gt;Firma &lt;a href="http://www.hideipvpn.com/"&gt;HideIpVPN&lt;/a&gt;  poza brytyjskimi oferuje tez IP zlokalizowane w innych krajach: USA, Niemcy, Kanada. Za brytyjski IP płaciłem 6 dolarów za miesiąc ale tutaj uwaga – firma często losuje darmowe konta lub obdziela nimi ludzi, którzy ją promują – dlatego piszę tego posta ;-)&lt;br /&gt;&lt;br /&gt;Jasne, fajnie będzie dostać za darmo konto, ale nie robiłbym tego gdybym nie uważał, że to naprawdę dobra usługa. Polecam.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Muszę przyznać, że szybko działają, już parę godzin po napisaniu tego posta dostałem voucher na darmowe konto VPN ;-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2570591946171268424?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2570591946171268424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2570591946171268424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2570591946171268424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2570591946171268424'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/06/jak-ogladac-bbc-w-polsce.html' title='Jak oglądać BBC w Polsce?'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3395587883647123760</id><published>2010-05-16T19:01:00.016+02:00</published><updated>2010-07-08T09:58:58.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zarządzanie projektem'/><category scheme='http://www.blogger.com/atom/ns#' term='polski'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='książki'/><title type='text'>Projekt Osobisty: PRZEczytaj książkę!</title><content type='html'>Hej tym razem &lt;i&gt;miękki &lt;/i&gt;wpis o tym jak być produktywnym. Właściwie o tym jak ja walczę ze swoim lenistwem ;-)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Polem walki jest czytanie książek, a celem &lt;b&gt;&lt;i&gt;prze&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;czytanie &lt;span class="Apple-style-span" style="font-style: normal;"&gt;ich&lt;/span&gt; &lt;span class="Apple-style-span" style="font-style: normal;"&gt;w całości w możliwie krótkim czasie. &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Nie przedłużając posta i nie pisząc o tym jak to zawsze miałem problem z niedokończonymi pozycjami przechodzę do sedna. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Najważniejszy jest cel! &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Czytanie książek &lt;i&gt;ot tak&lt;/i&gt; się nie sprawdza, no chyba, że czytasz beletrystykę - ja na to nie mam czasu :-/ &lt;/div&gt;&lt;div&gt;Celem czytania może być poszerzenie wiedzy, którą wykorzystasz w projekcie, zdobycie kolejnego certyfikatu, lub choćby jakiejś umiejętności np. zastosowania wzorca projektowego &lt;i&gt;&lt;a href="http://pl.wikipedia.org/wiki/Strategia_(wzorzec_projektowy)"&gt;strategia&lt;/a&gt;&lt;/i&gt;. Ważnym jest aby cel był &lt;a href="http://pl.wikipedia.org/wiki/S.M.A.R.T._(zarz%C4%85dzanie)"&gt;SMART &lt;/a&gt; a przede wszystkim &lt;b&gt;mierzalny &lt;/b&gt;i &lt;b&gt;określony w czasie&lt;/b&gt;. Właśnie dlatego najbardziej lubię naukę do certyfikatów, kiedy już wyznaczę sobie termin egzaminu ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gdy już jestem zmotywowany celem zauważyłem, że dużo łatwiej mi przejść przez książkę. Mimo to, często wraz z upływem czasu tracę entuzjazm i poczucie, że jestem coraz bliżej wyznaczonego celu niż dalej. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;Plan czytania&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Aby temu zaradzić stosuję uproszczoną wersję techniki&lt;i&gt; Work Breakdown Structure&lt;/i&gt;. Przepisuję listę rozdziałów z książki i przy każdym z nich deklaruję do kiedy go przeczytam. Gdy go przeczytam zaznaczam, że mam go już za sobą.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Brzmi banalnie, wręcz głupio, jednak dzięki tak prostej metodzie widzę ciągłe postępy, co mnie motywuje do dalszej pracy(czytania). Widzę ile już osiągnąłem i ile mi zostało do końca. Wiem też kiedy zasłużyłem na odpoczynek i z poczuciem dobrze wykonanej roboty mogę iść na piwo ze znajomymi. Ta metoda na prawdę pomaga przebrnąć nawet przez najbardziej nudne książki, czy żmudne przygotowania do egzaminów. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Właśnie tak się przygotowałem do &lt;a href="http://en.wikipedia.org/wiki/The_Open_Group_Architecture_Framework"&gt;TOGAF&lt;/a&gt;a tylko w tedy jeszcze nie widziałem, że ten sposób (co sam wymyśliłem) to tak naprawdę okrojony &lt;a href="http://en.wikipedia.org/wiki/Work_breakdown_structure"&gt;Work Breakdown Structure&lt;/a&gt;. Teraz przy okazji czytania &lt;i&gt;&lt;a href="http://www.amazon.com/Guide-Business-Analysis-Knowledge%C2%AE-BABOK%C2%AE/dp/0981129218"&gt;A Guide to the Business Analysis Body of Knowledge&lt;/a&gt;&lt;/i&gt; &lt;i&gt;"odkryłem"&lt;/i&gt; że to WBS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aby ułatwić sobie życie, korzystam (już od paru lat) z serwisu &lt;a href="http://todoist.com/"&gt;TODOIST.com&lt;/a&gt; który jest menadżerem zadań. O samym serwisie i jego świetnym interfejsie mógłbym napisać osobnego (długiego) posta, gdybym tylko znalazł czas, dlatego teraz skupię się tylko na pokazaniu jak go wykorzystuję przy czytaniu książek.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EEfMPS_r4rA/S_AuN_NZMdI/AAAAAAAAB9w/vKN9sE_11mM/s1600/taski1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 296px;" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/S_AuN_NZMdI/AAAAAAAAB9w/vKN9sE_11mM/s400/taski1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5471924365095940562" /&gt;&lt;/a&gt;Powyższy zrzut z ekranu przedstawia 4 pierwsze rozdziały wraz  z podrozdziałami z książki &lt;i&gt;A Guide to the Business Analysis Body of Knowledge &lt;/i&gt;w postaci &lt;i&gt;tasków&lt;/i&gt;. Każdy &lt;i&gt;rozdział &lt;/i&gt;jest &lt;i&gt;zadaniem &lt;/i&gt;grupującym &lt;i&gt;podzadania&lt;/i&gt;, które są odpowiednikami &lt;i&gt;podrozdziałów&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Po przeczytaniu podrozdziału zaznaczam checkboxa i wtedy zostaje on oznaczony jako przeczytany (zrobiony), co graficznie jest oznaczone jako wyszarzenie i przekreślenie poziomą linią.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dzięki temu wiem gdzie jestem, co zrobiłem i ile mi zostało. Taki &lt;i&gt;micro&lt;/i&gt; project management, stąd zresztą tytuł tego posta &lt;i&gt;Personal Project&lt;/i&gt; - bo nie wiedziałem jak to nazwać lepiej ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Aha, TODOIST.com ma super interfejs i wpisywanie tych wszystkich podrozdziałów zajęło mi parę minut tylko! &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nie wiem czy komuś z Was się spodoba ta metoda i spróbuje ja  wykorzystać ale zapewniam, że w moim wypadku jest skuteczna.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3395587883647123760?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3395587883647123760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3395587883647123760' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3395587883647123760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3395587883647123760'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/05/presonal-project-read-book.html' title='Projekt Osobisty: PRZEczytaj książkę!'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/S_AuN_NZMdI/AAAAAAAAB9w/vKN9sE_11mM/s72-c/taski1.PNG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2238153181324212661</id><published>2010-05-06T15:12:00.005+02:00</published><updated>2010-05-18T21:36:32.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ITIL v.3'/><category scheme='http://www.blogger.com/atom/ns#' term='exam'/><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><title type='text'>Przygotowania do certyfikatu ITIL V3 Foundation</title><content type='html'>Nadszedł czas na kolejny egzamin, kolejny certyfikat :-)&lt;br /&gt;Ponad miesiąc temu&lt;a href="http://pawelzubkiewicz.blogspot.com/2010/03/togaf-9-certified-great-success.html"&gt; zdobyłem certyfikat TOGAF 9 Certified&lt;/a&gt;, czyli na drugim, wyższym poziomie.&lt;br /&gt;&lt;br /&gt;Tym razem planuje coś łatwiejszego i szybszego do opanowania niż architektura korporacyjna. Jak się pewnie domyślasz drogi czytelniku po tytule tego posta zamierzam usystematyzować swoją wiedzę na temat IT Infrastructure Library. Moim zdaniem jest to roztropny krok w celu poszerzenia mojej wiedzy w tym obszarze IT ;-)&lt;br /&gt;&lt;br /&gt;Generalnie nie przewiduje żadnych problemów z egzaminem, ponieważ jest on względnie łatwy, a materiałów do nauki jest w sieci bardzo wiele. Poza tym zakres wymaganej wiedzy dotyczy wielu aspektów IT, dlatego prawie każdy w swojej karierze miał styczność z obszarami, które są adresowane przez ITIL, a zatem dużo łatwiej jest się do takiej wiedzy z książki odnieść na bazie własnego doświadczenia. Innymi słowy pomimo pewnej dozy abstrakcji (jak najbardziej potrzebnej) omawiane modele i wytyczne bardzo łatwo "sprowadzić na ziemię", co sprawia, że materiał staje się łatwo przyswajalny.&lt;br /&gt;&lt;br /&gt;Jak na razie przeczytałam książkę &lt;a href="http://www.amazon.com/ITIL-Foundation-Complete-Certification-Kit/dp/1921573600"&gt;ITIL V3 Foundation Complete Certification Kit: 2009 Edition Study Guide Book and Online Course&lt;/a&gt;. Muszę przyznać, że jest ona bardzo fajnie i przystępnie napisana. Świetny jest również kurs elearningowy, do którego otrzymujemy dostęp. Idealnie się sprawdza przy powtórkach. Składa się z kilkunastu prezentacji w których lektor omawia po kolei wszystkie serwisy ITIL.&lt;br /&gt;&lt;br /&gt;W ramach kolejnego utrwalenia wiedzy zamierzam przygotować mapy myśli z serwisami oraz podległymi im procesami i funkcjami. Kto wie, może nawet je opublikuje na blogu?&lt;br /&gt;&lt;br /&gt;W kolejnej fazie przygowowań przeczytam inną książkę przygotowawczą - zawsze jest dobrze korzystać z różnych źródeł. Mój wybór ograniczyłem już do dwóch pozycji:&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/Introduction-ITIL-Service-Lifecycle-Official/dp/0113310617/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1273150184&amp;amp;sr=1-1"&gt;The Official Introduction to the ITIL Service Lifecycle&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/ITIL-Version-Glance-Information-Reference/dp/0387773924/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1273150131&amp;amp;sr=1-1"&gt;ITIL Version 3 at a Glance. Information Quick Reference&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Następnym krokiem są już mocki egzaminacyjne. Tutaj mamy bardzo ułatwioną sytuację, ponieważ w sieci jak już pisałem materiałów nie brakuje. Żeby nie być gołosłownym podam parę linków:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://itildumps.blogspot.com/"&gt;http://itildumps.blogspot.com/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.examcollection.com/EX0-101.html"&gt;http://www.examcollection.com/EX0-101.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Pod tym drugim adresem jest wiele plików z przykładowymi testami w formacie programu &lt;a href="http://www.visualcertexam.com/"&gt;Visual CertExam&lt;/a&gt;, który daje nam &lt;i&gt;look &amp;amp; feel&lt;/i&gt; prawdziwego egzaminu. Bardzo użyteczne - nie trzeba się "bawić" z testami na papierze czy w PDFie.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Na samym końcu dobrze jest też wiedzieć co zdajemy i gdzie... instytucją autoryzującą/certyfikującą egzaminy z ITIL jest EXIN. Ja zawsze korzystam z Prometrica, na egzamin można się zapisać po przez stronę:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://prometric.com/EXIN/default.htm"&gt;http://prometric.com/EXIN/default.htm&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Egzamin nosi nazwę: &lt;b&gt;EX0-101 - ITIL Foundation v.3&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2238153181324212661?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2238153181324212661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2238153181324212661' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2238153181324212661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2238153181324212661'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/04/i-am-preparing-for-itil-v3-foundation.html' title='Przygotowania do certyfikatu ITIL V3 Foundation'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2201228218462595777</id><published>2010-05-04T22:14:00.008+02:00</published><updated>2010-07-08T09:56:08.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='journal'/><category scheme='http://www.blogger.com/atom/ns#' term='The Architecture Journal'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>The Architecture Journal #23</title><content type='html'>Today I found pretty clever website: &lt;a href="http://issuu.com"&gt;issuu.com&lt;/a&gt;. It helps to publish and share any text publications in many formats, in particular PDFs and DOCs. I think it's very nice and user friendly, so I decided to show it to you on my blog. Here you have last issue of &lt;a href="http://www.architecturejournal.net/"&gt;The Architecture Journal&lt;/a&gt; - magazine from Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The Architecture Journal is an independent platform for free thinkers and practitioners of IT architecture. New editions are issued quarterly with articles designed to offer perspective, share knowledge, and help you learn the discipline and pursue the art of IT architecture. The Architecture Journal reaches over 50,000 subscribers worldwide.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Click on the widget and select full-screen. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;object style="width:600px;height:403px" &gt;&lt;param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fcolor%2Flayout.xml&amp;amp;backgroundColor=FFFFFF&amp;amp;showFlipBtn=true&amp;amp;documentId=100504200603-20a33850f73e4b278577589c61c8a36b&amp;amp;docName=architecture_journal_23&amp;amp;username=panzupa&amp;amp;loadingInfoText=Architecture%20Journal%2023&amp;amp;et=1273004285870&amp;amp;er=53" /&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="menu" value="false"/&gt;&lt;embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:600px;height:403px" flashvars="mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fcolor%2Flayout.xml&amp;amp;backgroundColor=FFFFFF&amp;amp;showFlipBtn=true&amp;amp;documentId=100504200603-20a33850f73e4b278577589c61c8a36b&amp;amp;docName=architecture_journal_23&amp;amp;username=panzupa&amp;amp;loadingInfoText=Architecture%20Journal%2023&amp;amp;et=1273004285870&amp;amp;er=53" &gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="width:600px;text-align:left;"&gt;&lt;a href="http://issuu.com/panzupa/docs/architecture_journal_23?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Fcolor%2Flayout.xml&amp;amp;backgroundColor=FFFFFF&amp;amp;showFlipBtn=true" target="_blank"&gt;Open publication&lt;/a&gt; - Free &lt;a href="http://issuu.com" target="_blank"&gt;publishing&lt;/a&gt; - &lt;a href="http://issuu.com/search?q=it" target="_blank"&gt;More it&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Still, it's not the same as paper but it's pretty neat. It's very good for browsing PDF-based magazins and other rich in pictuers and colors publications. I think it gives better &lt;span style="font-style:italic;"&gt;look &amp; feel&lt;/span&gt; than Adobe's products. Of course I don't encourage you to read whole issue on issuu :-) &lt;br /&gt;I personally conver articules to kindle format because my kindle is the best!&lt;br /&gt;&lt;br /&gt;PS. I recomend articule about &lt;span style="font-style:italic;"&gt;Software Architecture in the Agile Life Cycle&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PS2. You can download &lt;span style="font-style:italic;"&gt;The Architecture Journal #23&lt;/span&gt; for free from &lt;a href="http://download.microsoft.com/download/5/9/E/59E7BB3C-181D-4180-BC9A-ACAC3C556C7B/AJ23_EN.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2201228218462595777?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2201228218462595777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2201228218462595777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2201228218462595777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2201228218462595777'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/05/architecture-journal-23.html' title='The Architecture Journal #23'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2937796624136406296</id><published>2010-03-30T16:28:00.009+02:00</published><updated>2010-04-08T16:04:11.866+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='exam'/><category scheme='http://www.blogger.com/atom/ns#' term='certified'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><title type='text'>TOGAF 9 Certified. Great Success!!!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Today&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;after&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;three&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;months&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;studying&lt;/span&gt; I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;took&lt;/span&gt; an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;TOGAF&lt;/span&gt; 9 Part 1 and Part 2 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;exams&lt;/span&gt;. I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;passed&lt;/span&gt; them both ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;think&lt;/span&gt; I &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;managed&lt;/span&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;score&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;quite&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;good&lt;/span&gt;:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Part 1 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Foundation&lt;/span&gt;) - 82%&lt;/li&gt;&lt;li&gt;Part 2 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Certified&lt;/span&gt;) - 90%&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;And &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;here&lt;/span&gt; is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;scan&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;from&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Prometric&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EEfMPS_r4rA/S7INrYZJEqI/AAAAAAAAB8M/4jxJnzPuXys/s1600/TOGAF+Cert.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 366px;" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/S7INrYZJEqI/AAAAAAAAB8M/4jxJnzPuXys/s400/TOGAF+Cert.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5454437137632531106" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;ve&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;checked&lt;/span&gt; in Open Group &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;database&lt;/span&gt; and I am &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;third&lt;/span&gt; person &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;that&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;passed&lt;/span&gt; second &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;level&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;exam&lt;/span&gt; in Poland. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;So&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;now&lt;/span&gt; I'm &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;TOGAF&lt;/span&gt; 9 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Certified&lt;/span&gt; Enterprise &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;Architect&lt;/span&gt; ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2937796624136406296?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2937796624136406296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2937796624136406296' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2937796624136406296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2937796624136406296'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/03/togaf-9-certified-great-success.html' title='TOGAF 9 Certified. Great Success!!!'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/S7INrYZJEqI/AAAAAAAAB8M/4jxJnzPuXys/s72-c/TOGAF+Cert.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5867162548323932681</id><published>2010-03-30T15:48:00.017+02:00</published><updated>2011-01-12T19:48:14.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TOGAF'/><category scheme='http://www.blogger.com/atom/ns#' term='Kindle DX'/><category scheme='http://www.blogger.com/atom/ns#' term='ereader'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='Kindle'/><title type='text'>Mój Kindle DX</title><content type='html'>Chęć napisania tego posta pojawiła się u mnie już na początku grudnia, czyli praktycznie zaraz po rozpakowaniu paczki z moim &lt;a href="http://en.wikipedia.org/wiki/Kindle_DX#Kindle_DX"&gt;Kindle DX&lt;/a&gt;. Od tamtej pory, czyli blisko od czterech miesięcy używam tego czytnika. Uważam, że to już na tyle długi czas abym mógł w miarę obiektywnie opisać zalety i wady tego ustrojstwa.&lt;br /&gt;&lt;br /&gt;Mam szczerą nadzieję, że ten wpis choć w małym stopniu , przyczyni się do promocji tego typu urządzeń w Polsce. Moje szybkie badanie (zapytania do google) polskiej javo-blogo-sfery pokazuje, że nikt z programistów  nie czyta książek na czytnikach. Wielka szkoda! Może  jednak czytacie tylko o tym głośno nie mówicie? A może trzeba Was zachęcić do kupna kolejnego gadżetu? Czekam na Wasze opinie w komentarzach.&lt;br /&gt;&lt;br /&gt;Właśnie! Czy Kindle DX jest gadżetem?  Stosując &lt;a href="http://en.wikipedia.org/wiki/Gadget"&gt;angielską definicje z Wikipedii&lt;/a&gt; raczej tak, jednak muszę podkreślić, że czytnik ma ogromną wartość praktyczną – codziennie go używam w domu i pracy! W przeciwieństwie do kompasu czy wasserwagi w moim telefonie ;-) Fakty są takie, że przeczytałem już kilkanaście książek na moim Kindlu i nie pamiętam już kiedy ostatnio wydrukowałem więcej niż 5 kartek papieru.&lt;br /&gt;&lt;br /&gt;Pracując w IT praktycznie wszystko jest publikowane po angielsku (i chwała Bogu, czy komukolwiek innemu za to), co oznacza ze jak chcesz być na bieżąco to musisz sprowadzać książki ze stanów. To kosztuje i trwa! Od paru lat coraz bardziej popularne wśród wydawnictw są ebooki w formie PDFów.  Takie ebooki są tańsze od wersji papierowej, nie obarczają nas kosztami przesyłki, są dostarczane natychmiast, ich wagi nie mierzy się w kilogramach i nie zajmują miejsca na półkach. Niestety z ebookami wiąże się jeden problem: jak je czytać?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Drukowanie – niekonieczne tanie, książki powyżej 300 stron w formie wydrukowanej są bardzo ciężkie i niewygodne. &lt;/li&gt;&lt;li&gt;Czytanie na komputerze – NISZCZY WZROK!!! Czytanie na każdym ekranie, co świeci niszczy oczy!&lt;/li&gt;&lt;/ul&gt;Czyli generalnie i tak źle i tak niedobrze.&lt;br /&gt;Na szczęście od ponad roku mamy na rynku (czyli w USA) czytniki ebooków które czytają PDFy (i inne formaty). Dzięki czemu nie musimy nic drukować, a czytając nie niszczymy sobie wzroku.&lt;br /&gt;&lt;br /&gt;Biorąc pod uwagę powyższe fakty, postanowiłem w końcu zakupić sobie takie urządzenie. Katalizatorem decyzji było rozpoczęcie przygotowań do egzaminu certyfikacyjnego &lt;a href="http://en.wikipedia.org/wiki/The_Open_Group_Architecture_Framework"&gt;TOGAF &lt;/a&gt;i zakup odpowiednich książek przygotowawczych w PDF.&lt;br /&gt;&lt;br /&gt;Wybór urządzenia nie był łatwy, z drugiej strony jako inżynier  wiedziałem, że będę czytał głównie techniczne PDFy, więc potrzebuje dużego ekranu, co drastycznie zmniejszyło możliwość wyboru. Standardowym wymiarem ekranów w ebook readerach jest 6 cali przekątnej. To zdecydowanie za mało aby wygodnie czytać PDFy. Potrzebowałem czegoś większego, co dobrze obsługuje PDFy i nie kosztuje tyle, co mały odrzutowiec. Dlatego zdecydowałem się najnowsze dziecko Amazona: Kindle DX. Urządzenie może nie jest tanie (zapłaciłem za nie $570) ale na pewno jest warte swojej ceny!  Posiada ekran o przekątnej 9,7 cala i bez większych problemów wyświetla wszystkie PDFy (oczywiście bez tych z &lt;a href="http://en.wikipedia.org/wiki/Digital_rights_management"&gt;DRM&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Do tej pory przeczytałem już kilkanaście książek na Kindlu. Trudno jest mi ocenić czy koszta zakupu się już zwróciły, pewnie jeszcze nie ale wygoda i przyjemność czytania jest bardzo duża. Czas od momentu kiedy usłyszysz o jakiejś książce do momentu kiedy możesz ją wygodnie czytać jest minimalnie krótki!&lt;br /&gt;&lt;br /&gt;To może teraz tak bardziej zwięźle o zaletach. Przede wszystkim nie musimy drukować książek. Ebooki się czyta bardzo wygodnie. W książkach w formacie Mobipocket (nie PDFy) można bardzo szybko sprawdzić znaczenie słowa w słowniku (angielskim) po przez zaznaczenie kursorem wyrazu – to się przydaje, przynajmniej mi. Fajne jest tez automatyczne przekręcanie obrazu gdy się przekręci urządzenie. Dzięki czemu uzyskujemy Zoom (kosztem tego, że wyświetla się tylko pół strony na raz).&lt;br /&gt;&lt;br /&gt;Jeśli chodzi o wady, to najbardziej denerwujące jest brak katalogowania czy tagowania książek. Wszystkie są wrzucone w jeden „fizyczny” folder i wyświetlane w jakiejś dziwnej kolejności na czytniku. Jeśli mamy ich więcej niż kilkanaście to się włącza paginacja i musimy przechodzić do następnych stron na których są wyświetlane kolejne tytuły. Jest to bardzo słabe rozwiązanie i szczerze nie wyobrażam sobie jak można ogarnąć więcej niż 50 książek w takim menu. Najdziwniejsze jest to ze moich kilkadziesiąt książek zajmuje kilkanaście mega… z dostępnego 3,2 giga. Z racji debilnej nawigacji nigdy nie wykorzystam tego miejsca (wole kasować książki z Kindle – zawsze mam przecież kopie na kompie ;-) niż się męczyć z głupią nawigacją. Poza tym reszta menu jest bardzo prosta i nie sprawia problemów).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ebookweek.com/ebook_benefits.html"&gt;Tutaj znalazłem stronę&lt;/a&gt; gdzie są wypisane ogólne zalety e-czytników, więc nie będę się dalej powtarzać ;-) &lt;br /&gt;Generalnie jestem bardzo zadowolony z mojego Kindle DX i polecam każdemu kto dużo czyta, również książek technicznych.&lt;br /&gt;Sorry za brak zdjęć ale w pracy jestem ;-)&lt;br /&gt;&lt;br /&gt;Macie za to filmik z YouTube &lt;br /&gt;&lt;object height="295" width="480"&gt;&lt;embed src="http://www.youtube.com/v/rW-oazz-o5g&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5867162548323932681?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5867162548323932681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5867162548323932681' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5867162548323932681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5867162548323932681'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2010/03/my-sweet-kindle-dx.html' title='Mój Kindle DX'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6131542818492008965</id><published>2009-07-29T17:08:00.016+02:00</published><updated>2009-07-30T10:11:40.754+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>How to write my first application in Android</title><content type='html'>I am sure that as much as I, when I read for a first time about Android, you can't wait to write your first application for it.  So I will show you how.&lt;br /&gt;&lt;br /&gt;Well in fact not myself, because there are many tutorials on the web and I don't want to copy them but I think it still can be helpful. So lets start! I assume that you already know Java.&lt;br /&gt;&lt;br /&gt;First you must download and install SDK for Eclipse. &lt;a href="http://developer.android.com/sdk/1.5_r3/installing.html"&gt;Here is how to do it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next thing is to watch that short movie that shows how to write application that lists people from phone's contact book and allows you to call each one after clicking on his/her name.&lt;br /&gt;&lt;object width="500" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/I6ObTqIiYfE&amp;amp;hl=pl&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/I6ObTqIiYfE&amp;amp;hl=pl&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If your lazy and don't want to write that application yourself I've got good news for you. I wrote that app and you can download sources from &lt;a href="http://www.megaupload.com/?d=OKGEUHNC" target="_blank"&gt;here&lt;/a&gt;. In Eclipse &lt;span class="path"&gt;Import -&gt; Existing Projects into workspace -&gt; Select archive file&lt;/span&gt; choose downloaded file, then you should see that Eclipse found project inside of archive, click Finish.&lt;br /&gt;&lt;br /&gt;I must say that this video is a little bit out of date. My version of this app is updated to support 1.5 (cupcake) Android. There are few little changes in API but the idea is the same, so I will skip explanation.&lt;br /&gt;&lt;br /&gt;Have a nice time playing with Android SDK and Emulator.&lt;br /&gt;&lt;br /&gt;Also if you have any problems with that application don't hesitate to ask me for help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6131542818492008965?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6131542818492008965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6131542818492008965' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6131542818492008965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6131542818492008965'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/how-to-write-my-first-application-in.html' title='How to write my first application in Android'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6929025457365563187</id><published>2009-07-28T16:54:00.012+02:00</published><updated>2009-07-29T19:35:33.853+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='Pro Android'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Pro Android - my first impressions</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apress.com/resource/bookcover/9781430215967?size=medium"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px; height: 164px;" src="http://www.apress.com/resource/bookcover/9781430215967?size=medium" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Curently I'm reading &lt;a href="http://www.apress.com/book/view/9781430215967"&gt;Pro Android&lt;/a&gt; book and working out some of the examples.&lt;br /&gt;&lt;br /&gt;The main problem with that book is the way in which examples are written. Most of them are simple listings of code, sometimes just pure methods. Their aim is to show some specific feature. That's OK but real problem is when you want to run examples and you don't know how to configure the platform! Examples are lacking this essential information: configuration.&lt;br /&gt;&lt;br /&gt;Android uses many xml files, some of them are used for configuration and other as the markup for views (something like JSP, actually more like Wicket HTML files - for those who know Wicket). Most of examples lack those files, and you must guess what to write there.&lt;br /&gt;&lt;br /&gt;Wait...It is even worse then this! When I downloaded sources for that book and looked inside I saw that there were no working projects. Not even one tiny working hello world application. Just exactly the same listings as that in the book.&lt;br /&gt;I can understand that authors didn't want to litter pages with listings of all files in project, but they &lt;b&gt;should&lt;/b&gt; provide us (readers) with working examples.&lt;br /&gt;&lt;br /&gt;So far I'm very disappointed with that book. I've read four chapters and it looks like authors have copied (changed) and pasted materials from &lt;a href="http://developer.android.com/guide/index.html"&gt;Android Developer's website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well, I've decided to go on reading next chapters to check if there are any useful information that is not in the web.&lt;br /&gt;&lt;br /&gt;Also, If you know any Android books that cover 1.5 version and that have NOT been copied from Developers Guide please leave me a comment with a title.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6929025457365563187?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6929025457365563187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6929025457365563187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6929025457365563187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6929025457365563187'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/proandroid-first-impressions.html' title='Pro Android - my first impressions'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5201276898702483159</id><published>2009-07-25T14:48:00.005+02:00</published><updated>2009-07-29T19:38:00.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Google Android</title><content type='html'>My last post was about Google Wave but for past few days I was making my first steps into the mobile world with &lt;a href="http://en.wikipedia.org/wiki/Android_(operating_system)"&gt;Android&lt;/a&gt; development. Google Android is an open source operating system for phones (and other devices). It is based on Linux and its main development language for applications is Java. That was one of the reasons why I bought a phone with it two weeks ago: &lt;a href="http://en.wikipedia.org/wiki/HTC_Dream"&gt;G1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is a little show of it (mine is white):&lt;br /&gt;&lt;object width="500" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hVHcybbuKCo&amp;amp;hl=pl&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/hVHcybbuKCo&amp;amp;hl=pl&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;As I said I'm making my first steps into world full of androids ;-) I'm reading book called &lt;a href="http://www.apress.com/book/view/1430215968"&gt;Pro Android&lt;/a&gt; and I must say that this is kind a fun. It's like learning another framework if you're Java programmer. Unfortunately, I get impression that most of tutorial examples were written by "C guys". There is code I'm not used to (many string statics instead of enums, returning codes instead of throwing exceptions, etc.). Well I don't know yet if this is necessary for performance.&lt;br /&gt;&lt;br /&gt;Anyway there are many cool applications to download for free to your phone. Some of them combine Google Maps, built-in camera &amp;amp; GPS to help you shopping - just like &lt;a href="http://www.youtube.com/watch?v=V2-jLK0aNiI"&gt;that &lt;/a&gt;cool app. I myself have some ideas for new applications too.&lt;br /&gt;&lt;br /&gt;So if you're Java programmer and considering phone with Android you should definitely buy it.&lt;br /&gt;&lt;br /&gt;PS. Stay tuned with my blog as I'm going to write some tutorials about Android development. Maybe I will also present it on Wrocław JUG meeting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5201276898702483159?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5201276898702483159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5201276898702483159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5201276898702483159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5201276898702483159'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/google-android.html' title='Google Android'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5586789267082630966</id><published>2009-07-25T14:25:00.003+02:00</published><updated>2009-07-25T14:47:30.013+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Wave'/><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Google Wave</title><content type='html'>After waiting few weeks I get email from Google&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Recently, you applied for a Google Wave developer sandbox account.  Your sandbox account is now ready.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally! So cool :-)&lt;br /&gt;Now I can try to test my robot - Wave widget that is attached to discussion and does some work. My robot is simple calculator and was written without testing, so probably it does not work ;-P&lt;br /&gt;&lt;br /&gt;Anyway this is great because I see great opportunity in Google Wave. It can revolutionize the way that we communicate. Particularly in business. But also in our private life by preparing together some events like trip with friends or deciding what to buy for someone on birthday.&lt;br /&gt;&lt;br /&gt;And here is material for those that don't know what Google Wave is. It's long but believe me, it's worth watching!&lt;br /&gt;&lt;br /&gt;&lt;object width="660" height="405"&gt;&lt;param name="movie" value="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=pl&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/v_UyVmITiYQ&amp;hl=pl&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5586789267082630966?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5586789267082630966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5586789267082630966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5586789267082630966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5586789267082630966'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/google-wave.html' title='Google Wave'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-599620414074866227</id><published>2009-07-15T11:59:00.003+02:00</published><updated>2009-07-15T12:19:52.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Java Guide'/><title type='text'>JDD Java Guide - konkurs</title><content type='html'>Dziś przeglądając GoogleReadera natknąłem się na &lt;a href="http://tech.mrozewski.pl/2009/07/10/jdd-java-guide/"&gt;posta Mateusza Mrozewskiego&lt;/a&gt; na temat konkursu JDD Java Guide. Jakież było moje zdziwienie jak zobaczyłem, że ktoś dodał i mojego bloga do listy biorących udział w konkursie. Dziekuje tej anonimowej osobie ;-)&lt;br /&gt;&lt;br /&gt;Bardzo fajnie, takie cos mobilizuje do prowadzenia bloga. Jeszcze raz dzięki!&lt;br /&gt;Jednocześnie zachęcam do &lt;a href="http://09.jdd.org.pl/JavaGuide/glosuj/kategoria,19"&gt;głosowania na mojego bloga&lt;/a&gt; ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-599620414074866227?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/599620414074866227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=599620414074866227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/599620414074866227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/599620414074866227'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/jdd-java-guide-konkurs.html' title='JDD Java Guide - konkurs'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3549724348842621070</id><published>2009-07-08T14:22:00.005+02:00</published><updated>2009-07-08T15:12:31.234+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='konferencje'/><category scheme='http://www.blogger.com/atom/ns#' term='javarsovia'/><title type='text'>Po Javarsovii</title><content type='html'>W ostanią sobotę miałem przyjemność uczestniczyć w konferencji Javarsovia. Muszę przyznać, że byłem zaskoczony jak dobrze została ona zorganizowana. Prelekcje odbywały się o czasie, a catering był bardzo smaczny. Rozkład jazdy na plakietkach - super! Tylko szkoda, że w salach nie było klimy. Gratulacje chłopaki (i dziewczyny?)!&lt;br /&gt;&lt;br /&gt;Muszę przyznać, że najbardziej podobała mi się prezentacja dotycząca nowego Garbage Collectora wygłoszona przez Konrada Kamińskiego. Może to nie jest zbyt fancy temat ale myśle, że zbyt często przez nas (javowców) pomijany dlatego z chęcią się wybrałem na tą prezentacje.&lt;br /&gt;&lt;br /&gt;Następna dla mnie ciekawa prelekcja dotyczyła programowania w Javie dla systemu Android. Przymierzam się do telefonu G1 od pewnego czasu i musze przyznać, że zademonstrowane możliwości platformy są sporym plusem przemawiającym za tym urządzeniem ;-) Szkoda tylko, że nie udało się nic zaprogramować na żywo autorowi, w tym miejscu polecam &lt;a href="http://koziolekweb.pl/2009/07/05/jak-przygotowac-sie-do-wystepu/"&gt;tego posta&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Udało mi się również zobaczyć prezentacje Waldemara Kota, na którą nie starczyło mi czasu na GeeCONie. Dotyczyła ona wirtualizacji maszyny wirtualnej javy. Bardzo ciekawy temat. Na razie brzmi troche fantastycznie ale jeszcze pare lat temu tak samo brzmiało wirtualizowanie "zwykłych" serwerów, co dziś jest codziennością.&lt;br /&gt;&lt;br /&gt;Na ostatnią prezentacje nie poszedłem bo było za gorąco, więc wybrałem BBQ Burgera w Jeff's ;-)&lt;br /&gt;&lt;br /&gt;Niestety nie mogłem uczestniczyć w after party - musiałem wracać do wrocka - mam jednak nadzieje, że następnym razem zostane na dłużej w Warszawie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3549724348842621070?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3549724348842621070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3549724348842621070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3549724348842621070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3549724348842621070'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/07/po-javarsovii.html' title='Po Javarsovii'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6592612735461413401</id><published>2009-06-24T14:41:00.005+02:00</published><updated>2009-06-24T14:52:30.642+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Eclipse Galileo już jest!</title><content type='html'>Od dziś jest już dostępna finalna wersja Eclipse Galileo (numer 3.5). W niej oczywiście wiele zmian: 33 nowe projekty, mnóstwo dodatków oraz poprawek. Ponieważ jestem leniwy i mi się nie chce pisać samemu polecam linka: &lt;a href="http://www.infoq.com/news/2009/06/eclipse-galileo-released"&gt;http://www.infoq.com/news/2009/06/eclipse-galileo-released&lt;/a&gt;. Tutaj na dokładkę &lt;a href="http://www.eclipse.org/galileo/blogathon/reviews.php"&gt;lista postów&lt;/a&gt; o nowym Eclipse.&lt;br /&gt;&lt;br /&gt;Samą aplikacje można ściągnąć stąd: &lt;a href="http://www.eclipse.org/downloads/"&gt;http://www.eclipse.org/downloads/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Miłej zabawy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6592612735461413401?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6592612735461413401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6592612735461413401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6592612735461413401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6592612735461413401'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/eclipse-galileo-juz-jest.html' title='Eclipse Galileo już jest!'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6432019704935003306</id><published>2009-06-24T14:20:00.003+02:00</published><updated>2009-06-24T14:27:44.318+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='GlassFish'/><category scheme='http://www.blogger.com/atom/ns#' term='jee'/><category scheme='http://www.blogger.com/atom/ns#' term='książki'/><title type='text'>Beginning Java™ EE 6 Platform with GlassFish™ 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://apress.com/resource/bookcover/9781430219545?size=medium"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 125px; height: 164px;" src="http://apress.com/resource/bookcover/9781430219545?size=medium" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Niedawno otrzymałem swoją kopię książki &lt;a href="http://apress.com/book/view/9781430219545"&gt;Beginning Java™ EE 6 Platform with GlassFish™ 3&lt;/a&gt;. Zamówiłem ją po przyjeździe z GeeCONa zainspirowany wystąpieniem jej autora &lt;a href="http://www.antoniogoncalves.org"&gt;Antonio Goncalves&lt;/a&gt;’a.  Jest on członkiem &lt;a href="http://www.jcp.org/"&gt;JCP&lt;/a&gt;  i pracuje przy różnych JSRach (Java EE 6, JPA 2.0, EJB 3.1) dlatego uważam, że jego książka może okazać się bardzo wartościową pozycją. Zamierzam się samemu przekonać!&lt;br /&gt;&lt;br /&gt;W najbliższym czasie zabieram się do czytania, jakie to nowinki zostały dla nas przygotowane w nowej specyfikacji JEE.  Cieszę się, że również będę mógł się zapoznać z serwerem GlassFish, którego wcześniej nigdy nie używałem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6432019704935003306?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6432019704935003306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6432019704935003306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6432019704935003306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6432019704935003306'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/beginning-java-ee-6-platform-with.html' title='Beginning Java™ EE 6 Platform with GlassFish™ 3'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6399286888229288687</id><published>2009-06-18T16:35:00.004+02:00</published><updated>2009-06-18T17:00:25.489+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Grails raz jeszcze</title><content type='html'>Wczoraj zacząłem swoja przygode z Grailsem. Musze przyznać, że zrobiłem to głownie po to aby móc powiedzieć: "testowałem to i nic ciekawego tam nie ma". Po dzisiejszym dniu pisania prostej aplikacji i rozgryzania składni Grooviego musze przyznać, że jestem zadowolony, że zacząłem się tym bawić ;-)&lt;br /&gt;&lt;br /&gt;Grails wcale nie jest taki zły!&lt;br /&gt;&lt;br /&gt;Proste CRUDowe aplikacyjki pisze sie bardzo szybko i faktycznie jak ktoś powiedzial w poniedziałek na JUG "krzywa nauki jest prostą" (co z reszta matematycznie jest słuszne). Pare fajnych konwencji w Grails jest i jeśli musiałbym wybierac to widok wole pisac w tym niż w czystym Spring MVC. Oczywiscie dla mnie Apache Wicket i tak jest bezkonkurencyjny!&lt;br /&gt;&lt;br /&gt;Przypadkiem trafiłem też na dzisiejszy post Jacka &lt;a href="http://jlaskowski.blogspot.com/2009/06/rozdzia-6-o-napisach-w-groovy-z.html"&gt;Rozdział 6. o napisach w Groovy z "Programming Groovy"&lt;/a&gt; i dowiedziałem się jak fajnie groovy obsługuje wyrażenia regularne. &lt;br /&gt;&lt;br /&gt;Ogolnie zaczynam lepiej rozumieć argumenty typu "java jest skostniała". Może faktycznie jest. &lt;br /&gt;&lt;br /&gt;Nie byłbym sobą gdybym nie zacytował "aby te wszystkie plusy nie przesłoniły wam minusów". Nadal uważam, że utrzymanie takiego kodu będzie cieżke nawet jeśli programiści będa starli się pisać przystępnie (brak jednolinijkowców i innych takich wynalazków).&lt;br /&gt;&lt;br /&gt;Ogolnie nie mogą się doczekać już dyskusji na Wrocławskim JUGu na temat Groovy, Grails, Scala, Java którą planujemy na lipiec.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6399286888229288687?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6399286888229288687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6399286888229288687' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6399286888229288687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6399286888229288687'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/grails-raz-jeszcze.html' title='Grails raz jeszcze'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-884039644896169059</id><published>2009-06-16T13:04:00.006+02:00</published><updated>2009-06-16T14:43:18.189+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='wicket'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Wicket: swapping (replacing) Fragments with Ajax</title><content type='html'>And now for something completely different... I've decided to start posting in English. For now, I think, half of my post will still be in Polish but I'm going to post only in English some day. I think it's move in right direction. In advanced I want to apologize for my bad English...&lt;br /&gt;&lt;br /&gt;Today my first post from upcoming series about my new favorite Java Web Framework: Apache Wicket. I'm still learning it so, please be understanding ;-)&lt;br /&gt;Despite this, I will not explain what Wicket is. If you found my blog you already know what it is. We will start from intermediate example.&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;"&gt;The problem:&lt;/font&gt; I have a panel that shows address information. When I click 'edit' link new panel with form is displayed in place of that last one. After editing information, when I click 'save' button information is saved and once again the first panel with new data is shown.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EEfMPS_r4rA/SjZfAxOM4DI/AAAAAAAABhA/ufrFxU-cQ6U/s1600-h/wicket_addressPanel.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SjZfAxOM4DI/AAAAAAAABhA/ufrFxU-cQ6U/s400/wicket_addressPanel.png" alt="" id="BLOGGER_PHOTO_ID_5347566074366582834" border="0"&gt;&lt;/a&gt;&lt;br /&gt;So, how to do it?&lt;br /&gt;I've got Panel with two fragments:&lt;ul&gt;&lt;li&gt;first for displaying address info&lt;/li&gt;&lt;li&gt;second for editing that data&lt;/li&gt;&lt;/ul&gt;Here is source code for HTML markup file. There are few interesting wicket tags:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;wicket:panel - defines markup for that panel, everything outside that tag will be ignored after including that panel in Page or other Component&lt;/li&gt;&lt;li&gt;wicket:fragment - defines part of HTML used to render defined in Java Fragment&lt;/li&gt;&lt;/ul&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;html xmlns:wicket&amp;gt;&lt;br /&gt;&amp;lt;wicket:panel&amp;gt;&lt;br /&gt; &amp;lt;a href=&amp;quot;#&amp;quot; wicket:id=&amp;quot;addressEditLink&amp;quot;&amp;gt;edit&amp;lt;/a&amp;gt;&lt;br /&gt; &amp;lt;div wicket:id=&amp;quot;group&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wicket:fragment wicket:id=&amp;quot;view&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;table cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;dataview&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;th colspan=&amp;quot;2&amp;quot;&amp;gt;Address&amp;lt;/th&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;street&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td wicket:id=&amp;quot;street&amp;quot;&amp;gt;[street]&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;localNumber&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td wicket:id=&amp;quot;localNumber&amp;quot;&amp;gt;[localNumber]&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;city&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td wicket:id=&amp;quot;city&amp;quot;&amp;gt;[city]&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;code&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td wicket:id=&amp;quot;code&amp;quot;&amp;gt;[code]&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;  &amp;lt;/table&amp;gt;&lt;br /&gt; &amp;lt;/wicket:fragment&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;wicket:fragment wicket:id=&amp;quot;edit&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;form wicket:id=&amp;quot;editAddressForm&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;table cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;dataview&amp;quot;&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;th colspan=&amp;quot;2&amp;quot;&amp;gt;Edit address&amp;lt;/th&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;street&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; wicket:id=&amp;quot;street&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;30&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;localNumber&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; wicket:id=&amp;quot;localNumber&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;30&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;city&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; wicket:id=&amp;quot;city&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;30&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;code&amp;lt;/td&amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; wicket:id=&amp;quot;code&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;6&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;   &amp;lt;tr&amp;gt;&lt;br /&gt;    &amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;save&amp;quot; wicket:id=&amp;quot;save&amp;quot; /&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;   &amp;lt;/tr&amp;gt;&lt;br /&gt;  &amp;lt;/table&amp;gt;&lt;br /&gt;  &amp;lt;/form&amp;gt;&lt;br /&gt; &amp;lt;/wicket:fragment&amp;gt;&lt;br /&gt;&amp;lt;/wicket:panel&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;Now when we have declared markup we can move to Java. I've got AddressPanel class, there are two methods responsible for creating two (earlier mentioned) Fragments:&lt;br /&gt;&lt;pre class="brush: java;"&gt;&lt;br /&gt; private Fragment createFragmentViewAddress() {&lt;br /&gt;  Fragment viewAddress = new Fragment(&amp;quot;group&amp;quot;, &amp;quot;view&amp;quot;, this);&lt;br /&gt;&lt;br /&gt;  viewAddress.add(new Label(&amp;quot;street&amp;quot;, model.bind(&amp;quot;street&amp;quot;)));&lt;br /&gt;  viewAddress.add(new Label(&amp;quot;localNumber&amp;quot;, model.bind(&amp;quot;localNumber&amp;quot;)));&lt;br /&gt;  viewAddress.add(new Label(&amp;quot;city&amp;quot;, model.bind(&amp;quot;city&amp;quot;)));&lt;br /&gt;  viewAddress.add(new Label(&amp;quot;code&amp;quot;, model.bind(&amp;quot;code&amp;quot;)));&lt;br /&gt;  viewAddress.setOutputMarkupPlaceholderTag(true);&lt;br /&gt;  return viewAddress;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private Fragment createFragmentEditAddress() {&lt;br /&gt;  Fragment editAddress = new Fragment(&amp;quot;group&amp;quot;, &amp;quot;edit&amp;quot;, this);&lt;br /&gt;&lt;br /&gt;  editAddress.setOutputMarkupPlaceholderTag(true);&lt;br /&gt;  editAddress.add(createAddressForm());&lt;br /&gt;  return editAddress;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;As you can see those two Fragments have the same id 'group' because one of them at a time will be rendered in place of:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&amp;lt;div wicket:id="group"&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;br /&gt;Second argument is markupId for binding Java object with part of HTML file and the last one is parent of Fragment in our case AddressPanel's instance &lt;font style="font-style: italic;"&gt;this&lt;/font&gt;. Method createAddressForm() is omitted because I just create instance of Form there.&lt;br /&gt;&lt;br /&gt;Next we have constructor of AddressPanel and two methods that add components to the panel.&lt;pre class="brush: java;"&gt;&lt;br /&gt;public class AddressPanel extends Panel {&lt;br /&gt; private Fragment currentFragment, alternateFragment;&lt;br /&gt; private CompoundPropertyModel&amp;lt;HomeAddress&amp;gt; model;&lt;br /&gt;&lt;br /&gt; public AddressPanel(String id, HomeAddress address) {&lt;br /&gt;  super(id);&lt;br /&gt;  model = new CompoundPropertyModel&amp;lt;HomeAddress&amp;gt;(address);&lt;br /&gt;  setOutputMarkupPlaceholderTag(true);&lt;br /&gt;&lt;br /&gt;  currentFragment = createFragmentViewAddress();&lt;br /&gt;  alternateFragment = createFragmentEditAddress();&lt;br /&gt;&lt;br /&gt;  addCurrentFragment();&lt;br /&gt;  addEditLink();&lt;br /&gt; }&lt;br /&gt; private void addCurrentFragment() {&lt;br /&gt;  add(currentFragment);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private void addEditLink() {&lt;br /&gt;  add(new AjaxFallbackLink(&amp;quot;addressEditLink&amp;quot;) {&lt;br /&gt;   @Override&lt;br /&gt;   public void onClick(AjaxRequestTarget target) {&lt;br /&gt;    swapFragments();&lt;br /&gt;    if (target != null) {&lt;br /&gt;     target.addComponent(currentFragment);&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  });&lt;br /&gt; }&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Fragment for viewing address is default in our case, so it is added to panel in constructor. Last element is AjaxFallbackLink for toggling between those two fragments, clicking it will swap/substitute/replace those Fragments. Also we have to add 'currentFragment' to the Ajax target. The trick is done here and in swapFragments() method:&lt;pre class="brush: java;"&gt;&lt;br /&gt;protected void swapFragments() {&lt;br /&gt; Fragment temp = currentFragment;&lt;br /&gt; currentFragment.replaceWith(alternateFragment);&lt;br /&gt; currentFragment = alternateFragment;&lt;br /&gt; alternateFragment = temp;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;We replace Wicket Fragments with each other and swap (using temp variable) references to those objects so every click on a 'edit' link will toggle Fragments.&lt;br /&gt;&lt;br /&gt;Last thing we have to do is to execute swapFragments() method when data from Form is successfully submitted. Here is code for 'save' button which is added to the Form. This will take effect in swapping to view mode after saving.&lt;pre class="brush: java;"&gt;add(new Button("save") {&lt;br /&gt;@Override&lt;br /&gt;public void onSubmit() {&lt;br /&gt; model.getObject();&lt;br /&gt; swapFragments();&lt;br /&gt;  }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that's all folks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-884039644896169059?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/884039644896169059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=884039644896169059' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/884039644896169059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/884039644896169059'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/wicket-swapping-replacing-fragments.html' title='Wicket: swapping (replacing) Fragments with Ajax'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SjZfAxOM4DI/AAAAAAAABhA/ufrFxU-cQ6U/s72-c/wicket_addressPanel.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-537556414095345335</id><published>2009-06-15T23:47:00.021+02:00</published><updated>2009-06-16T08:45:19.711+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='example'/><category scheme='http://www.blogger.com/atom/ns#' term='closures'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='google collections'/><title type='text'>Poor's man closures in Java</title><content type='html'>&lt;p&gt;So, you would like to have closures in Java? Just right after you heard about it in Groovy (or in any other functional language that has them).&lt;/p&gt;&lt;p&gt;I say there is a way in Java to mimic closure behavior with collection! &lt;/p&gt;&lt;p&gt;Let's say you have Collection of Person objects. Person object has its own properties: name, discount and employee (Boolean flag). Now you want to double discount of every employee in that Collection. &lt;/p&gt;&lt;p&gt;I bet it's trivial task for you! One for...each loop and it's done!&lt;/p&gt;&lt;p&gt;But what if you want to do it in a more elegant yet similar to closures way? Look at this solution that utilizes Google Collections library.&lt;/p&gt;&lt;br /&gt;Let's try from test:&lt;br /&gt;&lt;pre class="brush: java;"&gt;@Test&lt;br /&gt; public void shouldDoubleDiscountIfEmployee() throws Exception {&lt;br /&gt; // given&lt;br /&gt; List&amp;lt;Person&amp;gt; people = new ArrayList&amp;lt;Person&amp;gt;();&lt;br /&gt; people.add(new Person(&amp;quot;John&amp;quot;,true,6));&lt;br /&gt;&lt;br /&gt; // when&lt;br /&gt; Collection&amp;lt;Person&amp;gt; list = Collections2.transform(people, new DoubleDiscountForEmployees());&lt;br /&gt;&lt;br /&gt; // then&lt;br /&gt; Person john = list.iterator().next();&lt;br /&gt; Integer expectedDiscount = 2*6;&lt;br /&gt; Integer actualDiscount = john.getDiscount();&lt;br /&gt; assertEquals(expectedDiscount , actualDiscount);&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;So, what happend here?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First we created list of people and added person with name John, who is employee and has discount rate 6&lt;/li&gt;&lt;li&gt;Then we transformed that list using transform method of Collections2 Google's class and our DoubleDiscountForEmployees Function class&lt;/li&gt;&lt;li&gt;Last thing is to check if everything went as we intended&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;That line:&lt;pre class="brush: java;"&gt;Collection&amp;lt;person&amp;gt; list = Collections2.transform(people, new DoubleDiscountForEmployees());&lt;/pre&gt;is something like closure because it executes code in DoubleDiscountForEmployees class againts each object in collection. Isn't that similar to closures?&lt;br /&gt;&lt;br /&gt;You must be curious what's inside of that class? Well, there isn't anything special about it. Just one method to implement from Function interface.&lt;pre class="brush: java;"&gt;package com.zubkiewicz.example.poorsmanclosure;&lt;br /&gt;&lt;br /&gt;import com.google.common.base.Function;&lt;br /&gt;&lt;br /&gt;public class DoubleDiscountForEmployees implements Function&amp;lt;Person, Person&amp;gt; {&lt;br /&gt;&lt;br /&gt; public Person apply(Person person) {&lt;br /&gt;  //This is code that you would put in 'real' closure&lt;br /&gt;  if(person.isEmployee()) doubleDiscount(person);&lt;br /&gt;  return person;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private void doubleDiscount(Person person) {&lt;br /&gt;  person.setDiscount(person.getDiscount()*2);&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This method is called apply and it is executed againts every object in collection. And that's all (tedious work of iterating through collection is done by Google Collections library).&lt;br /&gt;&lt;br /&gt;For those of you that want to check it by yourself here is Person class code&lt;pre class="brush: java;"&gt;package com.zubkiewicz.example.poorsmanclosure;&lt;br /&gt;&lt;br /&gt;public class Person {&lt;br /&gt;&lt;br /&gt; private String name;&lt;br /&gt; private Boolean employee;&lt;br /&gt; private Integer discount;&lt;br /&gt;&lt;br /&gt; public Person(String name, Boolean employee, Integer discount) {&lt;br /&gt;  this.name = name;&lt;br /&gt;  this.employee = employee;&lt;br /&gt;  this.discount = discount;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public Boolean isEmployee() {&lt;br /&gt;  return employee;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public Integer getDiscount() {&lt;br /&gt;  return discount;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void setDiscount(Integer discount) {&lt;br /&gt;  this.discount = discount;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public String getName() {&lt;br /&gt;  return name;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt; And here are dependencies (all) for maven pom file&lt;pre class="brush: xml;"&gt;&amp;lt;dependencies&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;4.5&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;dependency&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;com.google.collections&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;google-collections&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;version&amp;gt;1.0-rc1&amp;lt;/version&amp;gt;&lt;br /&gt;    &amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;&lt;br /&gt;    &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br /&gt;   &amp;lt;/dependency&amp;gt;&lt;br /&gt; &amp;lt;/dependencies&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'm aware that it is not a clouser, but for me it's a similar, elegant solution that at the same time is compatible with &lt;a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod"&gt;SOLID principles&lt;/a&gt;. I encourage you to use and explore &lt;a href="http://code.google.com/p/google-collections/"&gt;Google Collections library&lt;/a&gt;. It has many other powerful features among that on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-537556414095345335?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/537556414095345335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=537556414095345335' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/537556414095345335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/537556414095345335'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/poors-man-closures-in-java.html' title='Poor&apos;s man closures in Java'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-505462496282593632</id><published>2009-06-15T21:34:00.007+02:00</published><updated>2009-06-15T22:39:15.163+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Few thoughts about Groovy &amp; Grails</title><content type='html'>&lt;p&gt;Po wysłuchaniu prezentacji jaką dziś wygłosił &lt;a href="http://www.jaceklaskowski.pl/"&gt;Jacek Laskowski&lt;/a&gt; na &lt;a href="http://wroclaw.jug.pl/"&gt;5. Spotkaniu Wrocławskiego JUGa&lt;/a&gt; chcę się z Wami podzielić paroma moimi przemyśleniami.&lt;/p&gt;&lt;p&gt;Za nim to uczynię chciałem bardzo podziękować Jackowi w swoim i całego JUGa imieniu za przybycie i poświęcenie swojego czasu dla nas. Dzięki! &lt;/p&gt;&lt;p&gt;Widać, że Jacek już nie jedną prezentacje wygłosił i można wszystko napisać ale nie to, że było nudo! Oj.. nie było! Snippety i tricki w Groovym, gorące dyskusje, przykłady... to wszystko jednak mnie nie przekonało do Grooviego. Jacek podkreślał, że nie miał na celu nas przekonać, a jedynie pokazać. Jednak ja poszedłem na prezentacje z myślą "Jak mnie Jacek nie przekona to już chyba nikt!". No i mnie nie przekonał.&lt;/p&gt;&lt;p&gt;Niestety albo stety prezentacja tylko utrwaliła mnie w przekonaniu, że Groovy to (boje się to napisać: "strata czasu"; wiec napisze) rozwiązanie nie dla mnie. Osobiście uważam, że użycie tego języka do czegoś bardziej skomplikowanego, czegoś większego, to proszenie się o kłopoty. Gdzie za coś większego uważam de facto cokolwiek. No chyba, że chcemy sobie zapewnić stałe miejsce pracy - Job Security Pattern ;-)&lt;/p&gt;&lt;p&gt;Kod w tym języku jest bardzo ciężki do utrzymania, promuje SMART nad SIMPLE - co dla mnie jest dziwnym w dzisiejszych czasach podejściem (nie zamierzam tutaj przytaczać wyświechtanych, co nie znaczy, że nie prawdziwych, argumentów, że więcej czytamy kod niż go piszemy, oraz wielu podobnych). Nie raz już się spotkałem ze stwierdzeniem, "To, że możesz coś zrobić [w Javie] nie znaczy, że powinieneś" i jak najbardziej się nim zgadzam. W Groovym możesz zrobić dużo więcej, i co gorsza jesteś do tego zachęcany... brryyyy... ciarki mnie przechodzą na samą myśl o tych programach napisanych w Groovym przez "geniuszy" kodu i składni. Rozszyfrować to będzie pewnie trudniej niż Assemblera. &lt;/p&gt;&lt;p&gt;Po pomimo mojego jasno określonego podejścia do tego języka, szczerze załuje, że zabrakło czasu na Grailsy (Jacek się na samolot spieszył). Moje pierwsze kontakty z obiektówką to był Ruby on Rails, czyli platforma (przynajmniej ideologicznie) podobna do Grailsów - również dlatego chciałem posłuchać "co nowego w trawie piszczy". &lt;/p&gt;&lt;p&gt;Robi wrażenie, że pod presją czasu i publiczności, zaledwie w ciągu dosłownie paru minut, udało się Jackowi stworzyć prostą aplikacje webową z wykorzystaniem Springa (jednego bo jednego ale zawsze beana miała ;-) Wiem, że właśnie po to (aby szybko coś wyklepać, a właściwie w połowie wygenerować) takie platformy powstają, jednak to daje do myślenia... Szkoda, że nie było więcej czasu aby porozmawiać co dalej można w takim Grailsie zrobić i jakie czyhają na nas pułapki? Pewnie ktoś odpowie w komentarzu: "wszystko to co w Javie i jeszcze więcej". Pewnie tak, tylko jakim kosztem?&lt;/p&gt;&lt;p&gt;Już pare razy miałem okazje rozmawiać z Mateuszem Głapińskim na temat tego typu języków (dynamicznych? funkcyjnych? czy jakich tam?) i muszę się z nim zgodzić, że taki Grails może być fajną alternatywą wobec Javy gdy trzeba na szybko stworzyć jakiś prototyp aplikacji webowej. Kodujesz szybko, nie martwisz się niczym, po czym taki prototyp wywalasz. Prawdziwy projekt piszesz w Javie. Takie wykorzystanie nie budzi mojego sprzeciwu.&lt;/p&gt;&lt;p&gt;Drugim zastosowaniem jakie przychodzi mi do głowy to nauka programowania. Ponieważ szybko można coś w tym wyklepać, co na prawdę działa to myśle, że mogło by to być ciekawsze do nauki niż Pascal (miałem go w liceum), czy inny język w którym efekty widać po tygodniach nauki i dniach kodowania.&lt;/p&gt;&lt;p&gt;Jednak nie widze dla tego rozwiązania miejsca w segmencie Enterprise.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-505462496282593632?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/505462496282593632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=505462496282593632' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/505462496282593632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/505462496282593632'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/few-thoughts-about-groovy-grails.html' title='Few thoughts about Groovy &amp; Grails'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2527796219871663589</id><published>2009-06-15T12:10:00.004+02:00</published><updated>2009-06-15T12:21:49.219+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pisma'/><category scheme='http://www.blogger.com/atom/ns#' term='pre-tested commit'/><category scheme='http://www.blogger.com/atom/ns#' term='polecam'/><category scheme='http://www.blogger.com/atom/ns#' term='TeamCity'/><category scheme='http://www.blogger.com/atom/ns#' term='Java exPress'/><title type='text'>New issue of Java exPress - Polish Java magazine</title><content type='html'>Dziś ukazał się nowy, &lt;a href="http://dworld.pl/2009/06/12/nowy-numer-java-express-wreszcie-dostepny/"&gt;czwarty &lt;/a&gt;numer magazynu &lt;a href="http://dworld.pl/java-express/"&gt;Java exPress&lt;/a&gt;. Tym razem wśród wielu ciekawych pozycji znalazły się i moje "wypociny". Popełniłem artykuł na temat&lt;span style="font-style: italic; font-weight: bold;"&gt; pre-tested commit&lt;/span&gt; w serwerze CI &lt;span style="font-style: italic; font-weight: bold;"&gt;TeamCity&lt;/span&gt;. Serdecznie zapraszam do lektury i komentarzy. Był to mój pierwszy raz na łamach tak szacownego pisma dlatego jestem bardzo ciekaw jak został przez Was odebrany :-)&lt;br /&gt;&lt;br /&gt;Pismo można ściągnąć w formie pdfa pod tym adresem: &lt;a href="http://dworld.pl/javaexpress/download/Java_exPress_004_2009_06.pdf"&gt;http://dworld.pl/javaexpress/download/Java_exPress_004_2009_06.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2527796219871663589?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2527796219871663589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2527796219871663589' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2527796219871663589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2527796219871663589'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/new-issue-of-java-express-polish-java.html' title='New issue of Java exPress - Polish Java magazine'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5815985198387990266</id><published>2009-06-03T14:07:00.003+02:00</published><updated>2009-06-03T14:21:34.044+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Would Java Be Better Off Without Primitives?</title><content type='html'>&lt;p&gt;Natknąłem się dziś na posta &lt;a href="http://java.dzone.com/articles/would-java-be-better-without"&gt;Would Java Be Better Off Without Primitives?&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ucieszyło mnie, że inni myślą podobnie jak i ja. Osobiście staram się nie używać typów primitywnych i uważam je za niepotrzebne! &lt;/p&gt;&lt;p&gt;Pewnie zaraz tutaj ludzie na mnie nakrzyczą że jestem wariat i spytają:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;a co z kompatybilnością wstecz&lt;/li&gt;&lt;li&gt;i wydajnością?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Moim zdaniem to nie problem. Jak jakiś system działa dobrze to sie go nie migruje do nowszej wersji - bo i po co? Poza tym jak ktoś bedzie chiał używać prymitywów to ma Jave 1.4, 5, 6 i 7 (niestety). Uważam, że fajnie byłoby mieć możliwość używania Javy 7 w pełni obiektowej bez typów prymitywnych. Mogłaby to być równoległa wersja coś na zasadzie Java 7 without primitives.&lt;/p&gt;&lt;p&gt;Jeśli chodzi o wydajność to też nie przypuszczam aby to stanowiło problem.&lt;/p&gt;&lt;p&gt;I jeszcze mi się przypomniało, że jak się uczyłem Javy to na każdym kroku spotykałem się ze stwierdzeniami, że to w pełni obiektowy język. Że wszystko w Javie jest obiektem... a potem sie okazało ze jest double i Double i że jedno to nie drugie. WTF? Po co sobie (i innym) tak życie komplikować? &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5815985198387990266?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5815985198387990266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5815985198387990266' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5815985198387990266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5815985198387990266'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/06/would-java-be-better-off-without.html' title='Would Java Be Better Off Without Primitives?'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6340992263538127258</id><published>2009-05-09T09:22:00.008+02:00</published><updated>2009-05-09T10:14:12.370+02:00</updated><title type='text'>After GeeCON</title><content type='html'>Już po! Wczoraj skończyła się konferencja GeeCON. Kto nie był niech żałuje ponieważ była świetna atmosfera i ciekawe wykłady.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Z dobrodziejstw jakie przygotowali organizatorzy i prelegenci najbardziej podobały mi się prezentacje o Spring 3.0, Glassfish 3, Jave EE 6 oraz Mockito przedstawiające technologie i rozwiązania. &lt;/p&gt;&lt;p&gt;Jeśli chodzi o nowego Springa to już się można bawić jego milestonami, wystarczy tylko znaleźć czas. Mi najbardziej z omawianych rzeczy przypadła do gustu możliwość konfiguracji tego frameworku przy pomocy Java Config, co eleminuje ogromną ilość XMLa.&lt;/p&gt;&lt;p&gt;Miłą niespodzianką dla mnie były wykłady &lt;a href="http://agoncal.wordpress.com/"&gt;Antonio Goncalves&lt;/a&gt;'a o którym wcześniej w ogóle nie słyszałem (co wynika pewnie tylko z mojej ignorancji i lenistwa). Prezentacje były świetne, może napisze tak: mam już zamówioną jego najnowszą książkę "Beginning Java™ EE 6 Platform with GlassFish™ 3".&lt;br /&gt;&lt;/p&gt;Kolejną rzeczą którą zamierzam się pobawić (i wykorzystać w pracy) jest &lt;a href="http://mockito.org/"&gt;Mockito&lt;/a&gt; napisane przez Szepana Fabera którego miałem okazje poznać :-) Oczywiście słyszałem już o tym narzędziu wspierającym testowanie ale jakoś nigdy nie miałem czasu aby się za nie zabrać na poważnie. Mam nadzieje, że tym razem będzie inaczej i w końcu wypiję szklankę zimnego, miętowego, orzeźwiającego Moijto.&lt;br /&gt;Do mojej listy ciekawych technologii mogę również dodać Gradle, choć nie jestem do końca przekonany czy go przetestuje.&lt;br /&gt;&lt;br /&gt;Natomiast jeśli chodzi o wykłady dotyczące tego jak programujemy to niewątpliwie triumfy święcił &lt;a href="http://bbossola.wordpress.com/"&gt;Bruno Bossola&lt;/a&gt; dzięki swojej przebojowej prezentacji &lt;span style="font-style: italic;"&gt;SOLID design principles&lt;/span&gt;. Nie mogę również zapomnieć o prezentacji &lt;a href="http://misko.hevery.com/"&gt;Miško Hevery&lt;/a&gt;, który jak się okazuj nie jest tylko moim "testowym mentorem" ale również ogromnej ilości innych programistów (w tym również innych prelegentów na konferencji).&lt;br /&gt;&lt;br /&gt;Jeszcze raz: kto nie był niech żałuje! Następną taka konferencja dopiero/już za rok :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6340992263538127258?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6340992263538127258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6340992263538127258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6340992263538127258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6340992263538127258'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/05/after-geecon.html' title='After GeeCON'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4731116592768332364</id><published>2009-04-29T16:02:00.008+02:00</published><updated>2009-04-29T18:57:40.863+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jstl'/><category scheme='http://www.blogger.com/atom/ns#' term='jsp'/><category scheme='http://www.blogger.com/atom/ns#' term='poradnik'/><title type='text'>JasperException:  items does not accept any expressions</title><content type='html'>Ostatnimi czasy pracuje przy rozwoju pewnej, niezbyt dużej aplikacji webowej (frontend to dużego systemu) opartej na Spring MVC. Już wcześniej wspominałem o niej w kontekście konfiguracji Eclipse, Maven i ich &lt;span style="font-style:italic;"&gt;output folderów&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Nadszedł czas, kiedy postanowiliśmy zmigrować ją do najnowszej wersji Tomcat’a  z lini 6.0.x. Migracja na początku szła niespodziewanie dobrze, to znaczy, że zdeployowała się bez problemu na nowym serwerze i udało się zalogować do aplikacji.  Jednak po chwili poszedł wyjątek:&lt;br /&gt;&lt;br /&gt;&lt;span class="path"&gt;org.apache.jasper.JasperException: /WEB-INF/jsp/users/details/outgoing-proc-menu.jsp(7,1) According to TLD or attribute directive in tag file, attribute items does not accept any expressions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oczywiście na Tomcat 5.5.x ten problem nie występuje.&lt;br /&gt;&lt;br /&gt;Szybkie &lt;span style="font-style:italic;"&gt;rendez-vous&lt;/span&gt; z Googlem i się wydało o co chodzi. Problem polega na niespójności wersji technologii i komponentów, z których korzystamy w naszej aplikacji, a dokładnie pomiędzy JSP, Servlet i JSTL. Poprawnie dobrane wersje przedstawiają się w następujący sposób:&lt;ul&gt;&lt;li&gt;JSP 1.2 , Servlet 2.3 , JSTL 1.0&lt;/li&gt;&lt;li&gt;JSP 2.0 , Servlet 2.4 , JSTL 1.1&lt;/li&gt;&lt;/ul&gt;Czyli używając nowej biblioteki standardowych tagów (JSTL) należy używać Servletów w wersji 2.4, czyli w web.xml trzeba podać:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;web-app version="2.4"&lt;br /&gt;xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Tak też mieliśmy ustawione. Czyli szukamy dalej…  Patrze w kod pliku JSP, który powoduje błąd - nic specjalnego – zwykły element forEach w stylu:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;c:forEach var="name" items="${names}"&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Kolejny raz do wróżki Google się zwróciłem i znalazłem odpowiedź. W naszych plikach JSP odwołujemy się do starej wersji core’owych tagów:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Wystarczyło zamienić URI na nowszą wersje:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;i aplikacja zaczęła działać bez problemów.&lt;br /&gt;DONE. Aplikacja zmigrowana do Tomcat 6.0.x.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4731116592768332364?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4731116592768332364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4731116592768332364' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4731116592768332364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4731116592768332364'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/04/jasperexception-items-does-not-accept.html' title='JasperException:  items does not accept any expressions'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6708064821034285889</id><published>2009-04-28T22:07:00.010+02:00</published><updated>2009-04-29T16:30:18.756+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Syntax Highlighter'/><category scheme='http://www.blogger.com/atom/ns#' term='poradnik'/><title type='text'>Syntax Highlighter &amp; Blogger</title><content type='html'>Jak każdy prawdziwy programista wiedziałem, że prędzej czy poźniej będę na swoim blogu umieszczać kod, aby czytelnicy mogli czerpać z mojej wiedzy tak samo jak ja czerpię z wiedzy innych. Aby kod wyglądał ładnie i schludnie postanowiłem użyć narzędzia &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter"&gt;Syntax Highlighter&lt;/a&gt;. Zapewne jeśli tu trafiłeś to pewnie już o nim słyszałeś, zatem nie będe się rozpisywał na jego temat. Tylko napiszę jak udało mi się je zintegrować z moim blogiem. &lt;br /&gt;&lt;br /&gt;Na sieci jest wiele podobnych do tego posta poradników, jednak żaden nie był wstanie mi pomóc i sam musiałem się &lt;span style="font-style:italic;"&gt;pałować&lt;/span&gt; aby wreście uruchomić to cholerne kolorowanie składni na blogerze :-) &lt;br /&gt;&lt;br /&gt;Jak już wspomniałem, żaden tutorial nie rozwiązał mojego problemu, jednak muszę przyznać, że bardzo mocno wzorowałem się na &lt;a href="http://maciej-progtech.blogspot.com/2009/04/syntaxhighlighter-na-bloggerrze-jak.html"&gt;tym poście&lt;/a&gt; - na dobrą sprawę musiałem wprowadzić tylko dwie drobne zmiany, które mnie kosztowały pare godzin poszukiwań.&lt;br /&gt;&lt;br /&gt;Tak więc lecimy tak jak &lt;span style="font-style:italic;"&gt;kolega&lt;/span&gt; &lt;a href="http://maciej-progtech.blogspot.com/"&gt;Maciek Zbrzezny&lt;/a&gt; napisał na swoim blogu: używamy SyntaxHighlighter w wersji 2.0.296.&lt;br /&gt;&lt;br /&gt;Na początek wklejamy przed tagiem &lt;span class="path"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt; biblioteki JavaScriptu (w moim wypadku tylko niektóre z listy wielu dostępnych) oraz style.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shCore.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shBrushJava.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shBrushJScript.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shBrushPlain.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shBrushSql.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;script src='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/shBrushXml.js' type='text/javascript'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/styles/shCore.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&amp;lt;link href='http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Zaraz potem i tutaj &lt;span style="font-weight:bold;"&gt;uwaga&lt;/span&gt; na różnice wobec wersji Maćka:&lt;br /&gt;&lt;pre class="brush: jscript; highlight: [2, 4, 6]"&gt;&lt;br /&gt;&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;//&amp;lt;![CDATA[&lt;br /&gt;SyntaxHighlighter.config.clipboardSwf = 'http://TWOJ_PRAWDZIWY.host.pl/syntaxhighlighter/scripts/clipboard.swf';&lt;br /&gt;SyntaxHighlighter.config.bloggerMode = true;&lt;br /&gt;SyntaxHighlighter.all();&lt;br /&gt;//]]&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Dzięki zaznaczonym zmianom Syntax Highlighter zaczął u mnie poprawnie działać. Bez zagnieżdzania kodu JavaScript w &lt;span style="font-weight:bold;"&gt;CDATA&lt;/span&gt; Blogger zamieniał znak apostrofu na jego kod Unicode, przez co skrypt nie działał. Następna linia jawnie ustawia skrypt w tryb pracy przewidzianej specjalnie dla Bloggera (tagi &amp;lt;br&amp;gt; wstawiane przez Bloggera w miejsce nowej linii nie są wyświetlane w blokach kodu). I to właściwie wszystko. Po więcej szczegółów dot. konfiguracji odsyłam do &lt;a href="http://alexgorbatchev.com/wiki/SyntaxHighlighter:Configuration"&gt;Wiki projektu&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Po takim skonfigurowaniu &lt;span style="font-style:italic;"&gt;template&lt;/span&gt; Bloggera możemy go zapisać i napisać pierwszego posta wykorzystująć kolorowanie składni. Wystarczy użyć takiego kodu:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;pre class=&amp;quot;brush: java;&amp;quot;&amp;gt;&lt;br /&gt;  //Tutaj tw&amp;#243;j kod&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Jeśli Twój przykładowy kod zawiera jakieś znaki które mogą być rozpoznane przez przeglądarke (lub Bloggera) jako XML/HTML to należy je &lt;span style="font-style:italic;"&gt;wy-es-kej-po-wać&lt;/span&gt;, czyli zamieć znaki na encje Unicode. Można to zrobić &lt;a href="http://www.string-functions.com/htmlencode.aspx"&gt;tym&lt;/a&gt; lub &lt;a href="http://www.accessify.com/tools-and-wizards/developer-tools/quick-escape/default.php"&gt;tym&lt;/a&gt; narzędziem. Tak wygenerowany kod możemy śmiało wkleić do swojego posta i chwalić się przed kolegami z pracy jakiego mamy ładnego bloga ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6708064821034285889?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6708064821034285889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6708064821034285889' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6708064821034285889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6708064821034285889'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/04/syntax-highlighter-blogger.html' title='Syntax Highlighter &amp; Blogger'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-572752594822121894</id><published>2009-04-27T22:27:00.016+02:00</published><updated>2009-04-29T16:35:00.462+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Eclipse + m2eclipse Maven plugin - problems with output folders</title><content type='html'>Pracując w Eclipse z pluginem &lt;a href="http://m2eclipse.codehaus.org/"&gt;m2eclipse&lt;/a&gt;, który integruje Mavena wraz z IDE napotkałem na pewne irytujące problemy, związane z niepoprawną konfiguracją projektu mavenowego w Eclipse. Mianowicie tworząc nowy test nie był on widoczny dla wbudowanego w Eclipse JUnita. Podobnie tworząc nową klasę z metodą &lt;span class="path"&gt;main(..)&lt;/span&gt; próba jej uruchomienia kończyła się błędem, Eclipse nie mógł znaleźć skompilowanej klasy. Trzeba było ją dopiero skompilować z poziomu Mavena.&lt;br /&gt;&lt;br /&gt;Domyślnie Maven skompilowane klasy z folderu:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="path"&gt;src/main/java&lt;/span&gt; umieszcza w &lt;span class="path"&gt;target/classes&lt;/span&gt;, natomiast z&lt;/li&gt;&lt;li&gt;&lt;span class="path"&gt;src/test/java&lt;/span&gt; w katalogu &lt;span class="path"&gt;target/test-classes.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;przy czym w Eclipse mój &lt;span style="FONT-STYLE: italic"&gt;output folder&lt;/span&gt; był ustawiony na &lt;span class="path"&gt;nazwa_projektu/bin&lt;/span&gt; i na dodatek był on wspólny dla kodu projektu oraz testów. To było przyczyną tego, że Eclipse się gubił i nie mógł znaleźć skompilowanych klas.&lt;br /&gt;&lt;br /&gt;Problem ten można łatwo rozwiązać, wystarczy poprawnie skonfigurować &lt;span style="FONT-STYLE: italic"&gt;output folder'y&lt;/span&gt; w Eclipse. Klikamy na projekt i wybieramy &lt;span style="FONT-STYLE: italic"&gt;Properties&lt;/span&gt;, po czym &lt;span style="FONT-STYLE: italic"&gt;Java Build Path&lt;/span&gt; i ustawiamy output foldery dla odpowiednich source folderów tak aby zgadzały się one z domyślną konfiguracją Mavena. Poprawnie skonfigurowany projekt powinien wyglądać jak na poniższym rysunku:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EEfMPS_r4rA/SfYKK8MwVgI/AAAAAAAABRM/MEIlX4BpXMw/s1600-h/ScreenShot001.png"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 298px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5329458392114157058" border="0" alt="" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SfYKK8MwVgI/AAAAAAAABRM/MEIlX4BpXMw/s400/ScreenShot001.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Teraz bez względu na to czy budujemy projekt Mavenem czy Eclipse robi to automatycznie oba narzędzia mogą współpracować ze sobą.&lt;br /&gt;&lt;br /&gt;Ale co zrobić jeśli chcemy ustawić w Eclipse output folder aby wskazywał na jakąś inną ścieżkę?&lt;br /&gt;Osobiście pracuje teraz przy projekcie webowej aplikacji, gdzie do pracy używamy plugina &lt;a href="http://www.eclipsetotale.com/tomcatPlugin.html"&gt;SysDeo&lt;/a&gt; którego zadniem jest uruchamianie projektu webowego w skonfigurowanym wczesniej serwerze Tomcat. Aby rozwiązanie było bardziej wydajne (pod kątem wydajności pracy) omijamy tutaj faze deploymentu aplikacji do serwera, a plugin uruchamia naszą aplikacje bezpośrednio z folderu &lt;span class="path"&gt;src/main/webapp&lt;/span&gt; w naszym workspace. Dodatkowo aby dwukrotnie nie kompilować kodu, ustawiliśmy w Eclipse output folder na &lt;span class="path"&gt;src/main/webapp/WEB-INF/classes&lt;/span&gt;, jak widać jest on różny od domyślnej konfiguracji w Mavenie. Co zrobić w takim wypadku?&lt;br /&gt;&lt;br /&gt;Odpowiedź jest bardzo prosta! Wystarczy dodać do &lt;span class="path"&gt;pom.xml&lt;/span&gt; w projekcie następującą konfiguracje:&lt;pre class="brush: xml;"&gt;&lt;br /&gt;&amp;lt;build&amp;gt;&lt;br /&gt;    &amp;lt;outputdirectory&amp;gt;${basedir}/src/main/webapp/WEB-INF/classes&amp;lt;/outputdirectory&amp;gt;&lt;br /&gt;    &amp;lt;testoutputdirectory&amp;gt;${basedir}/target/test-classes&amp;lt;/testoutputdirectory&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Dzięki czemu znów uzyskamy spójność konfiguracji pomiędzy Eclipsem a Mavenem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-572752594822121894?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/572752594822121894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=572752594822121894' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/572752594822121894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/572752594822121894'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/04/eclipse-m2eclipse-maven-plugin-problems.html' title='Eclipse + m2eclipse Maven plugin - problems with output folders'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SfYKK8MwVgI/AAAAAAAABRM/MEIlX4BpXMw/s72-c/ScreenShot001.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-4447621914669644623</id><published>2009-04-27T00:30:00.010+02:00</published><updated>2009-04-27T14:02:24.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='polecam'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Recipes'/><category scheme='http://www.blogger.com/atom/ns#' term='książki'/><title type='text'>Spring Recipes Review</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apress.com/book/view/1590599799"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 125px; height: 164px;" src="http://www.apress.com/resource/bookcover/9781590599792?size=medium" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is my review of a book that has been given to Wrocław Java User Group by Apress User Group Programme.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Spring Recipes Review&lt;/h1&gt;&lt;h2&gt;Content&lt;/h2&gt;Book consists of three parts: Core, Fundamentals and Advanced.&lt;br /&gt;&lt;br /&gt;The first part of the book will give you a lot of information on what Spring Framework is, how it works and how to use it in your projects. You will learn about basic concepts such as Inversion of Control and how it is achieved. You will also learn how to add Spring libraries to your project and how to setup your workspace. In the first chapters, there are many examples of simple beans configuration. I must admit that the first 4 chapters were a little bit boring – mostly because of many XML listings. But this is Spring, right? In addition to XML configuration every example has its version that utilizes annotations to configure framework.&lt;br /&gt;&lt;br /&gt;On the other hand, the last two chapters of this part of the book were quite interesting. The fifth chapter will introduced you to an Aspect Oriented Programming in Spring. You will learn what AOP is about and why you should use it. Before you get to Spring 2.x AOP implementation you can read about old 1.x way. Personally, I think that part could be skipped, but hey, maybe someday I will have to maintain Spring 1.x application and then I will be pleased that someone wrote that chapter.&lt;br /&gt;&lt;br /&gt;Chapter six is even more interesting as you can read here about modern Spring 2.5 AOP features. There are plenty of Java-coded, comprehensive examples. It explains the usage of Aspects pretty well. Although I have used Spring Aspects in my projects I didn't know about „introductions” feature, so reading that chapter really paid off.&lt;br /&gt;&lt;br /&gt;The second part of the book – &lt;span style="font-style: italic;"&gt;Fundamentals &lt;/span&gt;– consists of more advanced topics. It starts with  a chapter about Spring's JDBC support. Guided by many simple examples you will learn different ways to utilize it.&lt;br /&gt;&lt;br /&gt;The next chapter continues database concerns – it tells about Transactions support in Spring with cooperation with JDBC. In comprehensive way it explains problems that occur when working with transactions and shows by examples how to solve them.&lt;br /&gt;&lt;br /&gt;The following chapter refers to object/relational mapping (ORM) support in Spring. I must say it is one of my favourite because it shows quickly and in a clear manner how to configure your database code in Hibernate specific way and, generally, according to Java Persistent API. As usual, examples of beans (entities) configuration are in XML and annotations, this time in two flavors: Hibernate &amp;amp; JPA.&lt;br /&gt;&lt;br /&gt;There are also chapters that relate to using Spring in web environment. You will learn from them how to use Spring MVC (and Spring Portlet MVC) and how to integrate Spring with other web frameworks.&lt;br /&gt;&lt;br /&gt;This part of the book ends with a chapter dedicated to testing. You will learn from it about basic testing techniques you can apply in testing Java applications, and also about the testing support features offered by the Spring framework.&lt;br /&gt;&lt;br /&gt;The last part of the book is called &lt;span style="font-style: italic;"&gt;Advanced&lt;/span&gt;. It covers in great detail many different technologies that are supported by Spring Framework. Not only will you learn how to utilize JMX, send e-mail, and schedule tasks in your applications using JDK Timer and Quartz but also how to communicate using JMS, and access EJB components with Spring’s support. There is also a chapter that covers various remoting technologies, such as RMI, Hessian, and Web Services.&lt;br /&gt;&lt;br /&gt;The book covers a few more Spring matters but I think you get the point of its content from my short summary.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;About the book&lt;/h2&gt;Book is well organized. The writing style is very precise and easy to follow. There are no confusions or errors. Gary Mak has adopted a "Problem – Solution - How it works" approach which turned out to be very helpful while explaining Spring features. The author introduces one concept at a time and then multiple approaches to solve the problem.&lt;br /&gt;&lt;br /&gt;The book has independent examples in each chapter, which I find very useful. Sometimes you must  look through the code of those examples in order to understand what is going on as parts of it are commented out and left to use in the other versions of the same project. In particular, annotation and classic (XML) configuration of beans are put in the same project but they cannot be used simultaneously. So you must experiment a little by yourself.  In my personal opinion those   exemplary projects could be configured with Maven – that would shorten the time needed to run them and make them more real-life reusable. I have tested many of them and all worked well (this is not so obvious in tech books).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Summary&lt;/h2&gt;This is a great Spring reference book. The way it has been written allows you to find quickly answers and solutions to problems which may occur during everyday work. In the same time it can be read from cover to cover by someone who wants to learn about myriads of features offered by the framework. To sum up, I highly recommend this book to both Spring newbies to grasp (and gain) as much knowledge from this book as they can, as well as to those that have already worked with Spring 2.0 and want to learn about new features, particularly annotation based configuration. I'm looking forward to read next book of the same author.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-4447621914669644623?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/4447621914669644623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=4447621914669644623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4447621914669644623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/4447621914669644623'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/04/spring-recipes-review.html' title='Spring Recipes Review'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-1639276348642708278</id><published>2009-04-26T23:24:00.003+02:00</published><updated>2009-04-26T23:54:20.838+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><title type='text'>Long time no see</title><content type='html'>&lt;span style="font-style: italic;"&gt;Wiele wody w Odrze... Cóż... nowa praca w &lt;a href="http://qnh.pl/"&gt;QNH&lt;/a&gt;, &lt;a href="http://wroclaw.jug.pl/"&gt;Wrocławski JUG&lt;/a&gt; i już czasu na własnego bloga nie starcza, a do tego wszystkiego rozpoczął się na dobre sezon rowerowy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dwa miesiące minęły od mojego ostatniego posta. Najważniejsze, że nie jest to zmarnowany czas i widać efekty mojej pracy. Najbardziej cieszy mnie fakt, że Wrocławski JUG ma się dobrze i ciągle się rozwija. Parę dni temu odbyło się już 3. Spotkanie na którym było ponad 50 osób. Cała grupa liczy obecnie 101 członków, co uważam za bardzo dobry wynik. Bardzo się cieszę, że udało się nam zaanimować wrocławski światek Javowy, ludzie powoli się angażują i wszystko idzie w dobrym kierunku. Kto wie, może nawet w tym roku jakąś małą konferencje zorganizujemy :-)&lt;br /&gt;&lt;br /&gt;W ciągu ostatnich dni pisałem krótki artykuł, który ukaże się w IV wydaniu &lt;a href="http://dworld.pl/java-express/"&gt;Java exPress&lt;/a&gt; (1 czerwiec). Byłem również zajęty czytaniem książki, którą dostałem do zrecenzowania od wydawnictwa Apress (w ramach współpracy z Wrocław JUG). Recenzja zostanie opublikowana wkrótce.&lt;br /&gt;&lt;br /&gt;Kończąc tego posta obiecuje, że będę pisać bardziej regularnie ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-1639276348642708278?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/1639276348642708278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=1639276348642708278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1639276348642708278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1639276348642708278'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/04/long-time-no-see.html' title='Long time no see'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2975248465842750219</id><published>2009-02-18T10:15:00.006+01:00</published><updated>2009-02-18T10:54:05.142+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wrocław JUG'/><title type='text'>Wrocław Java User Group</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EEfMPS_r4rA/SZvarM4kYYI/AAAAAAAABP8/vZrlR354LGM/s1600-h/wroclaw-jug-frame.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 222px; height: 400px;" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/SZvarM4kYYI/AAAAAAAABP8/vZrlR354LGM/s400/wroclaw-jug-frame.png" alt="" id="BLOGGER_PHOTO_ID_5304073421886611842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Witam. Mam ogromną przyjemność ogłosić wszem i wobec, że wrocławski światek javowy się reaktywował. W ciągu ostatnich paru tygodni powstawał &lt;a href="http://www.wroclaw.jug.pl/"&gt;Wrocław Java User Group.&lt;/a&gt; Dziś oficjalnie projekt ujrzał światło dzienne!&lt;br /&gt;&lt;br /&gt;Skąd moja ogromna przyjemność? Ponieważ jestem współpomysłodawcą i jednocześnie współorganizatorem tego przedsięwzięcia :-)&lt;br /&gt;&lt;br /&gt;Poniżej zaproszenie na &lt;span style="font-weight: bold;"&gt;1. Spotkanie Wrocław JUG&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Już w najbliższy wtorek 24 lutego o godzinie 18:30 w sali 119 Instytutu Informatyki Uniwersytetu Wrocławskiego odbędzie się pierwsze spotkanie nowo powstałej Wrocławskiej Grupy Użytkowników Javy. &lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;Na początek Przemek Pokrywka przybliży nam statycznie typizowaną wersję dobrze znanego wzorca &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;i style="font-style: italic;"&gt;builder&lt;/i&gt;&lt;/span&gt;.&lt;span style="font-style: italic;"&gt; Po czym, z racji tego, że będzie to pierwsze spotkanie Wrocław JUG, po prelekcji Przemka zamierzamy omówić sprawy organizacyjne.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;Więcej informacji o pierwszym spotkaniu znajdziecie na stronie &lt;/span&gt;&lt;a style="font-style: italic;" title="http://groups.google.com/group/wroclaw-jug/web/pierwsze-spotkanie-zaproszenie" href="http://groups.google.com/group/wroclaw-jug/web/pierwsze-spotkanie-zaproszenie" id="slfx"&gt;http://groups.google.com/group/wroclaw-jug/web/pierwsze-spotkanie-zaproszenie&lt;/a&gt;&lt;span style="font-style: italic;"&gt; , a aktualności związane z działalnością WJUG na &lt;/span&gt;&lt;a style="font-style: italic;" title="www.wroclaw.jug.pl" href="http://www.wroclaw.jug.pl/" id="sb7v"&gt;www.wroclaw.jug.pl&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Serdecznie zapraszamy!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Wrocław Java User Group&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2975248465842750219?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2975248465842750219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2975248465842750219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2975248465842750219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2975248465842750219'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/02/wrocaw-java-user-group.html' title='Wrocław Java User Group'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EEfMPS_r4rA/SZvarM4kYYI/AAAAAAAABP8/vZrlR354LGM/s72-c/wroclaw-jug-frame.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3834019581121250770</id><published>2009-02-14T14:06:00.002+01:00</published><updated>2009-02-14T14:29:07.280+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polecam'/><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='zarządzanie projektem'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='prezentacja'/><title type='text'>Seven years in Eclipse</title><content type='html'>Witam. Dawno nic nie pisałem ponieważ byłem zajęty. Niedługo na blogu ukaże się parę postów mówiących o tym, co robiłem ostatnimi czasy.&lt;br /&gt;&lt;br /&gt;Dziś chce się "na szybko" podzielić pewną prezentacją którą właśnie widziałem. Erich Gamma, którego przedstawiać chyba nie muszę :-) ,mówi o tym &lt;a href="http://www.infoq.com/presentations/Eclipse-Lessons-Erich-Gamma"&gt;How (7 years of) Eclipse Changed my Views on Software Development&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;W ujęciu historycznym opisuje ewolucje projektu Eclipse. I nie chodzi tutaj o rozwój samej aplikację, a o podejście do tworzenia oprogramowania. W pierwszych latach istnienia Eclipse był projektem zamkniętym. Potem został otwarty i zaczął czerpać z feedback'u społeczności, która z każdym rokiem stawała (i staje) się coraz większa.&lt;br /&gt;&lt;br /&gt;Erich Gamma prezentuje również platformę &lt;a href="https://jazz.net/"&gt;Jazz&lt;/a&gt;, na której rozwijany jest Eclipse. Mówiąc krótko jest to narzędzie &lt;a href="http://en.wikipedia.org/wiki/Software_configuration_management"&gt;SCM&lt;/a&gt;. Z tego, co widać na prezentacji świetnie zintegrowane z Eclipsem. Aż nie mogę się doczekać, aby sprawdzić jak to działa w praktyce... Może zamiast tworzyć swój projekt OS dołączę do Eclipse lub Jazz jako kontrybutor? Ciekawe. Kolejna pozycja na mojej ToDo List :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3834019581121250770?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3834019581121250770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3834019581121250770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3834019581121250770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3834019581121250770'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/02/seven-years-in-eclipse.html' title='Seven years in Eclipse'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-10251742544729491</id><published>2009-02-01T17:49:00.005+01:00</published><updated>2009-02-01T18:03:38.456+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kariera'/><category scheme='http://www.blogger.com/atom/ns#' term='zawód programista'/><title type='text'>System.exit(0)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYXVMN6nwOI/AAAAAAAABOM/lmVz1BvsuQk/s1600-h/DSC00154.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYXVMN6nwOI/AAAAAAAABOM/lmVz1BvsuQk/s320/DSC00154.JPG" alt="" id="BLOGGER_PHOTO_ID_5297874942541938914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Moja współpraca z firmą &lt;a href="http://www.comarch.pl/"&gt;Comarch &lt;/a&gt;dobiegła końca. Trwała ona równo 30 miesięcy. Jak to w życiu bywa były to lepsze i gorsze miesiące, szczególnie że mocno to zależy od dobranych kryteriów. Niemniej jednak ludzi, z którymi pracowałem we wrocławskim oddziale firmy będę zawsze dobrze wspominał i cieszę się, że mogłem z nimi pracować, uczyć się od nich.&lt;br /&gt;&lt;br /&gt;Teraz nadszedł czas na zmiany i tą zmianą jest &lt;a href="http://www.qnh.pl/"&gt;QNH Polska&lt;/a&gt;. Póki, co firma mało znana na polskim i wrocławskim rynku. Mam nadzieje, do czasu :-)&lt;br /&gt;&lt;br /&gt;A po lewej zdjęcie tortu pożegnalnego - niestety się nie kompiluje :-P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-10251742544729491?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/10251742544729491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=10251742544729491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/10251742544729491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/10251742544729491'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/02/systemexit0.html' title='System.exit(0)'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_EEfMPS_r4rA/SYXVMN6nwOI/AAAAAAAABOM/lmVz1BvsuQk/s72-c/DSC00154.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-7470121015011481897</id><published>2009-02-01T17:40:00.000+01:00</published><updated>2009-02-01T17:42:44.836+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sonar'/><category scheme='http://www.blogger.com/atom/ns#' term='TeamCity'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>TeamCity &amp; Sonar presentation, part 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EEfMPS_r4rA/SYG61Cp8V_I/AAAAAAAABMw/o-hRzTPEy90/s1600-h/TeamCity-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 139px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SYG61Cp8V_I/AAAAAAAABMw/o-hRzTPEy90/s200/TeamCity-1.png" alt="" id="BLOGGER_PHOTO_ID_5296720057173039090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Obiecałem, że napiszę kolejnego posta o &lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt; i &lt;a href="http://sonar.codehaus.org/"&gt;Sonar&lt;/a&gt;, więc oto i on ;-)&lt;br /&gt;Dziś cześć druga prezentacji tych narzędzi. &lt;a href="http://pawelzubkiewicz.blogspot.com/2009/01/teamcity-sonar-presentation.html"&gt;Tutaj&lt;/a&gt; możecie zobaczyć część pierwszą, która skupiła się głównie na funkcji &lt;span style="font-style: italic;"&gt;pre-tested commit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tym razem omówię pozostałe cechy TeamCity, które osobiście uważam za ciekawe i przydatne. Na pewno nie wymienię tutaj ich wszystkich ponieważ jest ich znaczna ilość i bardzo możliwe, że ich jeszcze nie poznałem. &lt;a href="http://www.jetbrains.com/teamcity/features/index.html"&gt;Tutaj&lt;/a&gt; znajduje się pełna lista tego, co TeamCity ma do zaoferowania.&lt;br /&gt;&lt;br /&gt;W moim opisie postaram się wymienić tylko to, co wyróżnia TeamCity od innych &lt;span style="font-weight: bold;"&gt;mi&lt;/span&gt; znanych serwerów CI, czyli &lt;a href="http://luntbuild.javaforge.com/"&gt;LuntBuild&lt;/a&gt;'a i &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt;'a (oraz w mniejszym stopniu &lt;a href="http://www.pmease.com/app.do"&gt;QuickBuild&lt;/a&gt;'a i &lt;a href="http://www.atlassian.com/software/bamboo/"&gt;Bamboo&lt;/a&gt;). Od razu jednak zastrzegam, że nie jest moim celem jakiekolowiek obiektywne porównie czy też test tych narzędzi. Poprostu dziele się swoimi spostrzeżeniami.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Przejrzystość i lekkość&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYHAiz_zdxI/AAAAAAAABM4/NTsTKeijfLE/s1600-h/tc2-buildsteps"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 183px; height: 320px;" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYHAiz_zdxI/AAAAAAAABM4/NTsTKeijfLE/s320/tc2-buildsteps" alt="" id="BLOGGER_PHOTO_ID_5296726341070321426" border="0" /&gt;&lt;/a&gt;Interfejs webowy aplikacji jest bardzo przejrzysty, lekki (i ładny). O ile może to być na pierwszy rzut oka kwestia gustu to im więcej z nim pracuje tym bardziej dostrzegam, że wszystko jest przemyślane. Przyciski i linki znajdują się na swoich miejscach - nigdy nie muszę ich szukać.  Po mimo dużej ilości danych wyświetlanych na stronach nie czuję się nigdy nimi przytłoczony i (prawie) zawsze wiem i rozumiem na co patrze. Niech za przykład posłuży tworzenie (edycja) nowego builda, po prawej stronie mam 7 dużych prostokątów, które odpowiadają 7 etapom konfigurowania takiego builda (rysunek po lewej).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Informacje o buildzie&lt;/span&gt;&lt;br /&gt;Każdy build oprócz samego loga z procesu budowania dostarcza nam wiele innych dodatkowych informacji. (Może nie tak wiele jak Hudson dzięki pluginom, ale tutaj jest to out-of-the-box). Tak więc mamy zakładkę &lt;span style="font-style: italic;"&gt;Tests&lt;/span&gt; na której wymienione są wszystkie testy jednostkowe w projekcie, ich statusy oraz czasy wykonania.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYHE0cq10BI/AAAAAAAABNI/DpgN3L_stiY/s1600-h/tc1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 206px;" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYHE0cq10BI/AAAAAAAABNI/DpgN3L_stiY/s320/tc1.png" alt="" id="BLOGGER_PHOTO_ID_5296731042092535826" border="0" /&gt;&lt;/a&gt;Dodatkowo każdy test ma własną "podstronę" która dostarcza nam szczegółowych informacji na temat wyników jego uruchomień na przestrzeni wielu buildów (obrazek po prawej). Jeśli jakiś test nie przeszedł to po jednym kliknięciu możemy przejść od razu do tej linijki w logu od której pojawiają się informacje o błędach. TeamCity oferuje nam jeszcze &lt;a href="http://www.jetbrains.com/teamcity/features/continuous_integration.html#Risk_Group_Tests_Reordering"&gt;możliwość zmieniania kolejności testów&lt;/a&gt;, dzięki czemu nowe testy oraz takie które mają statystycznie (na podstawie historii) największe szanse na niepowodzenie będą uruchamiane jako pierwsze - wszystko po to aby nas informować o problemach jak najszybciej.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EEfMPS_r4rA/SYHGV3hp8KI/AAAAAAAABNQ/OXbCm8TYXP4/s1600-h/tc3.stats.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SYHGV3hp8KI/AAAAAAAABNQ/OXbCm8TYXP4/s200/tc3.stats.png" alt="" id="BLOGGER_PHOTO_ID_5296732715749077154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Możemy sobie również obejrzeć statystki danego builda (konfiguracji). Pokażą one nam jak często build się udawał dziś oraz w poprzednich dniach (tygodniach, latach). Ile czasu trwał ile testów się wykonało.&lt;/p&gt;&lt;p&gt;Trudno to przedstawić na rysunku ale interfejs aplikacji jest wyposażony w wiele kontekstowych menu, które pozwalają na bardzo szybkie przejście do interesujących nas szczegółów. Na stronie główniej mamy listę projektów i skonfigurowanych buildów. Gdy jakiś build się uruchomi (bo został np. wyzwolony przez commit) to na stronie główniej widać, że właśnie się wykonuje. Co więcej wystarczy na niego najechać kursorem aby uzyskać w takim menu kontekstowym listę kommitów oraz jak ktoś chce poszczególne pliki z kommitu. Tego typu menu jest sporo w całym interfejsie i znacznie ułatwiają pracę z nim. Skoro już o komitach piszę, to TeamCity oferuje graficzne porównywanie wersji plików z repozytorium, dzięki czemu łatwo możemy zobaczyć, co się zmieniło od ostatniego kommita.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Agents&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;W TeamCity możemy (musimy) skonfigurować tak zwanych Agentów - jest to odpowiednik slave'ów z innych serwerów CI. Głównym zadaniem Agenta jest budowanie naszego kodu. Jest to program który może zostać uruchomiony na dowolnym komputerze, łączy się on z naszym serwerem CI i rezyduję jako "proces do budowania". Jest to świetna idea (stosowana tez w konkurencyjnych programach) dzięki, której jedna maszyna nie jest przeciążona budowaniem kodu, zadanie to jest rozłożone na kilka innych. Świetnie do tego nadają się starsze komputery, które już dla programistów są zbyt wolne. Uwaga w wersji dostępnej za darmo możemy mieć tylko trzech agentów. Jednak jak czytamy na &lt;a href="http://peterpascale.com/?p=41"&gt;tym blogu&lt;/a&gt; jest to liczba wystarczająca dla 25-30 deweloperów.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Sonar&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYMAd2zSoMI/AAAAAAAABNY/1x-Plg5t7Fg/s1600-h/sonar.1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 190px;" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYMAd2zSoMI/AAAAAAAABNY/1x-Plg5t7Fg/s400/sonar.1.png" alt="" id="BLOGGER_PHOTO_ID_5297078099644686530" border="0" /&gt;&lt;/a&gt;Sonar z kolei jest narzędziem agregującym informacje o kodzie w naszym projekcie. Jeśli kiedykolwiek robiłeś na własną rękę "stronke", która integrowała raporty z wielu tooli takich jak pmd, cpd, cobertura to Sonar na pewno Ci się spodoba. Poza wymienionymi wyżej toolami oferuje on wiele więcej. Obrazek z prawej pokazuje nam informacje na temat jednego projektu. Jak widać informacji jest sporo. Od góry z lewej LOC - lines of code, code coverage - pokrycie testami, testy, oraz complexity czyli poziom skomplikowania metod i klas. Poniżej widzimy jak bardzo projekt jest zgodny z regułami dobrego programowania (pmd).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYMVF48NMUI/AAAAAAAABNg/zjlGvxAKMiw/s1600-h/sonar.2.codecoverage.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 288px;" src="http://2.bp.blogspot.com/_EEfMPS_r4rA/SYMVF48NMUI/AAAAAAAABNg/zjlGvxAKMiw/s400/sonar.2.codecoverage.png" alt="" id="BLOGGER_PHOTO_ID_5297100777646272834" border="0" /&gt;&lt;/a&gt;Gdy oglądamy pokrycie testami to możemy sobie zajrzeć do kodu testowanej klasy i zobaczyć które konkretnie linijki klasy są testowane, a które są pomijane przez testy (rysunek po prawej). Jest to na prawdę bardzo wygodne.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYMWLWVQKvI/AAAAAAAABNo/bO7PM_1a_js/s1600-h/sonar.3.timemachine.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 148px;" src="http://3.bp.blogspot.com/_EEfMPS_r4rA/SYMWLWVQKvI/AAAAAAAABNo/bO7PM_1a_js/s200/sonar.3.timemachine.png" alt="" id="BLOGGER_PHOTO_ID_5297101970946927346" border="0" /&gt;&lt;/a&gt;Kolejną fajną funkcja jest szumnie nazwana opcja &lt;span style="font-style: italic;"&gt;Time machine. &lt;/span&gt;W gruncie rzeczy pokazuje ona zmiany w czasie wszystkich statystyk i parametrów kodu. Dzięki czemu w łatwy sposób możemy zobaczyć czy jakość naszego oprogramowania się podnosi czy może spada. Czy zatrudnienie nowych osób odbiło się na (kodzie w) projekcie czy raczej pozostało bez większego echa.&lt;/p&gt;&lt;p&gt;Sonar jest dostępny w postaci plugina do Maven'a oraz Anta (w tym wypadku nie wszystkie opcje są dostępne). Ja go integrowałem z Mavenem - robi się to szybko i bezboleśnie. Wystarczy 15 minut aby mieć tak "wypasione" raporty na temat kodu.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Podsumowanie&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sonar razem z TeamCity tworzą genialną parę dającą przeogromną ilość informacji o naszym kodzie, a zatem i o samym projekcie. Obydwa narzędzia stoją na wysokim poziomie, przy czym Sonar jest projektem OpenSource'owym, a TeamCity komercyjnym (dostępnym za darmo z pewnymi ograniczeniami).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Osobiście uważam, że ten duet nadaje się do sporej ilości różnych projektów. Oczywiście nie należy podejmować decyzji pochopnie i dobrać odpowiednie narzędzia do swoich potrzeb.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-7470121015011481897?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/7470121015011481897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=7470121015011481897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7470121015011481897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/7470121015011481897'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/teamcity-sonar-presentation-part-2.html' title='TeamCity &amp; Sonar presentation, part 2'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SYG61Cp8V_I/AAAAAAAABMw/o-hRzTPEy90/s72-c/TeamCity-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2139714900249184977</id><published>2009-01-29T23:43:00.003+01:00</published><updated>2009-01-30T00:19:35.592+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='development environment'/><title type='text'>Make the things you do often fast and easy</title><content type='html'>Właśnie przeczytałem obszerny wpis na pewnym blogu zatytułowany &lt;a href="http://blog.carbonfive.com/2008/09/java/make-the-things-you-do-often-fast-and-easy"&gt;Make the things you do often fast and easy&lt;/a&gt; i stwierdziłem, że warto podzielić się z innymi tym linkiem. Dlaczego? Ponieważ mądre rzeczy są tam opisane :-)&lt;br /&gt;&lt;br /&gt;Autor koncentruje swój wysiłek na przekazaniu wielu "życiowych" rad mających na celu zwiększenie produktywności i zoptymalizowanie pracy w projekcie. Czytając je widać, że swoją wiedze zdobył pracując przy wielu projektach, poprawiając &lt;span style="font-style: italic;"&gt;development environment&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Owszem można mu zarzucić, że pisze o rzeczach (powszechnie) znanych i zasadniczo niewiele nowego w artykule jest. Jednak osobiście uważam, że i tak warto go przeczytać ponieważ stanowi całkiem dobrą kompilacje wielu dobrych praktyk związanych ze środowiskiem pracy programisty. Poza tym środowisko często bywa pozostawiane same sobie i szybko zarasta chwastami również dlatego warto przeczytać ten artykuł i poszukać chwastów u siebie w projekcie i sposobie pracy. Gwarantuję, że jakieś się znajdą.&lt;br /&gt;&lt;br /&gt;Od siebie dodam jeszcze, że warto przesiąść się na Linuxa ponieważ jego systemy plików są dużo bardziej wydajne (szczególnie &lt;a href="http://pl.wikipedia.org/wiki/ReiserFS"&gt;ReiserFS&lt;/a&gt;) gdy są używane przy programowaniu (ogromne ilości bardzo małych plików). To zostało poparte wieloma testami u mnie w teamie (kilka osób, kilka komputerów). Jeśli ktoś nie chce pracować z Linuxem to proponuje na WinXP zrobić sobie partycje FAT32 tylko dla samego workspace'a (eclipsa i całej reszty) na pewno zauważy, że szybciej działa niż NTFS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2139714900249184977?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2139714900249184977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2139714900249184977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2139714900249184977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2139714900249184977'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/make-things-you-do-often-fast-and-easy.html' title='Make the things you do often fast and easy'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5070807076799020110</id><published>2009-01-29T00:25:00.016+01:00</published><updated>2009-01-29T02:13:53.898+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='wirtualizacja'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>Virtualization &amp; How to clone Virtual Machine in VirtualBox</title><content type='html'>&lt;p&gt;Miałem napisać o TeamCity i Sonarze, a dziś (i wczoraj) o małpach i wirtualnych maszynach pisałem. Zdarza się. O TeamCity ciągle pamiętam i niedługo do niego wróce. &lt;/p&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Wirtualizacja&lt;/span&gt;&lt;br /&gt;Jestem zwolennikiem wirtualizacji.&lt;br /&gt;W pracy tego używamy (jeden serwer SUN'a na którym mamy klika wirtualnych systemów operacyjnych zainstalowanych) i się sprawdza bardzo dobrze. Takie rozwiązanie oferuje sporo oszczędności: pieniędzy, miejsca, prądu, generuje mniej ciepła niż klika prawdziwych maszyn itp.&lt;br /&gt;&lt;br /&gt;W domu też używam wirtualizacji dzięki dostępnemu za darmo &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;'owi. Moje osobiste powody są trochę inne ponieważ w domu komputera używam do innych rzeczy niż w pracy. Jednak od czasu do czasu i w domu mam ochotę pogrzebać w kodzie. Osobiście uważam, że Windows to nie jest system operacyjny stworzony do programowania w Javie dlatego zainstalowałem sobie wirtualną Fedore na której w domowym zaciszu programuje i eksperymentuje z kodem. Po prostu w Linuxie wygodniej mi się programuje ale pod Windowsem wole  oglądać filmy, słuchać muzyki czy oddawać się innym multimedialnym rozrywkom.&lt;br /&gt;&lt;br /&gt;Wirtualne maszyny pozwalają mi połączyć to wszystko na jednym fizycznym komputerze w prosty i wygodny sposób.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt; Kolejnym bardzo ważnym powodem dla mnie jest fakt, że instalowanie jakiś serwerów aplikacji, baz danych i inne takie eksperymenty miałyby opłakany skutek dla mojego XP, a tak wszystko mam schowane pod parasolem wirtualnej maszyny, a mój XP nadal działa OK. &lt;a href="http://pl.wikipedia.org/wiki/Enkapsulacja"&gt;Enkapsulacja&lt;/a&gt; ;-)&lt;br /&gt;&lt;/p&gt;Oczywiście istnieje alternatywa dla mojego rozwiązania: Dual Boot. Przez długi czas tego używałem ale teraz widzę, że wirtualizacja to szybsze i prostsze rozwiązanie oferujące, więcej zalet niż Dual Boot jedynie za cenę obniżonej wydajności (w dobie wielordzeniowych procesorów i wielogigowych kości RAM nie jest dużą ceną).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:150%;"&gt;Jak sklonować wirtualną maszynę&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Dziś zapragnąłem swoją Fedore sklonować aby na jednej maszynie skonfigurować środowisko pracy którego nie chce mieszać z innymi, a ponieważ moja Fedora jest już całkiem fajnie poustawiana (zainstalowana JAVA, moje ulubione programy itp) nie chciało mi się robić instalacji od zera. Właściwie byłem pewien ze VirutalBox oferuje funkcje prostego klonowania wirtualnych maszyn...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Niestety nie! Jednak jak się zaraz okaże nie jest to wcale trudne i bez przycisku "klonuj" można sobie dać radę. Teraz pokrótce - może się komuś przyda - przedstawię jak sklonować wirtualną maszynę pod VirtualBoxem.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;Merdżowanie zrzutów&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Jeśli mamy włączoną wirtualną maszynę wyłączamy ją i przechodzimy do programu VB&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Zaznaczamy maszynę do sklonowania i po prawej stronie programu przechodzimy do zakładki &lt;em&gt;Zrzuty&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Jeśli chcemy zachować aktualny stan maszyny w klonie należ wykonać zrzut. Zaznaczamy &lt;span style="font-style: italic;"&gt;Aktualny stan&lt;/span&gt; i wciskamy &lt;span style="font-style: italic;"&gt;Zrob zrzut (Ctrl+Shift+S)&lt;/span&gt;. Stworzy się &lt;span style="font-style: italic;"&gt;zrzut (snapshot)&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wybieramy ostatni &lt;span style="font-style: italic;"&gt;zrzut &lt;/span&gt;który chcemy umieścić w klonie i wciskamy &lt;span style="font-style: italic;"&gt;Odrzuć zrzut&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(Ctrl+Shift+D). &lt;/span&gt;To zmerdżuje plik zrzutu z plikiem wirtualnego dysku vdi. (U mnie to trwało parę minut!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Postępujemy tak cyklicznie aż najstarszy zrzutu zostanie scalony (zmerdżowany)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Klonowanie&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Każdy wirtualny dysk ma swoje niepowtarzalne ID. W jednym VirtualBoxie nie można używać dwóch dysków o tym samym ID dlatego zwykłe przekopiowanie pod inną nazwą pliku vdi nie rozwiązuje problemu. Warto jednak dodać, że gdybym chciał taki obraz użyć na innym komputerze i innym VB to już nie będzie problemem.&lt;br /&gt;&lt;br /&gt;Tak więc co zrobić aby zmienić ID wirtualnego dysku?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Trzeba odnaleźć plik VBoxManage(.exe). Na Windowsie znajduje się tam gdzie został zainstalowany VB&lt;/li&gt;&lt;li&gt;Znaleźć plik vdi który chcemy sklonować&lt;/li&gt;&lt;li&gt;Uruchomić z lini komend skrypt VBoxMange z komenda clonevdi orginał klon&lt;/li&gt;&lt;/ol&gt;U mnie to wyglądało tak:&lt;br /&gt;&lt;blockquote&gt;C:\Program Files\Sun\xVM VirtualBox&gt;VBoxManage.exe clonevdi f:\VirtualBox\Fedora.vdi f:\VirtualBox\FedoraClone.vdi&lt;br /&gt;VirtualBox Command Line Management Interface Version 2.1.2&lt;br /&gt;(C) 2005-2009 Sun Microsystems, Inc.&lt;br /&gt;All rights reserved.&lt;br /&gt;&lt;br /&gt;0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%&lt;br /&gt;Clone hard disk created in format 'VDI'. UUID: a07ad83a-33ed-4bb8-8e23-9c8a2637b24d&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Tak stworzony plik FedoraClone.vdi mogę użyć w VirtualBox do stworzenia nowej maszyny wirtualnej. W wizardzie jako dysk należy wybrać &lt;span style="font-style: italic;"&gt;istniejący &lt;/span&gt;i potem w menadżerze wirtualnych dysków dodać przed chwilą stworzony plik (dysk).&lt;br /&gt;&lt;br /&gt;W taki sposób mogę się cieszyć pięknym klonem swoje wirtualnej maszyny. Oczywiście taki klon może służyć jako forma backupu również.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5070807076799020110?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5070807076799020110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5070807076799020110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5070807076799020110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5070807076799020110'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/virtualization-how-to-clone-virtual.html' title='Virtualization &amp; How to clone Virtual Machine in VirtualBox'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-9193280467482973971</id><published>2009-01-28T13:53:00.007+01:00</published><updated>2009-02-15T15:13:52.993+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='Productive Programmer'/><title type='text'>Angry monkeys story (experiment)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://oreilly.com/catalog/9780596519780/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 236px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SYBa4ExhA-I/AAAAAAAABMk/u9796mtVPP8/s320/productive+programmer.gif" alt="" id="BLOGGER_PHOTO_ID_5296333081188303842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pare dni temu przeglądałem książkę &lt;a href="http://oreilly.com/catalog/9780596519780/"&gt;&lt;span class="book-title" style="font-weight: bold;"&gt;The Productive Programmer&lt;/span&gt;&lt;/a&gt; (jest na mojej liście "&lt;span style="font-style: italic;"&gt;do przeczytania&lt;/span&gt;"). Natknąłem się na pewien, krótki rozdział którego sednem była opowieść o rozwścieczonych małpach. Specjalnie dla Was ją tutaj zacytuję:&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Back in the 1960s (when scientists were allowed to do all kinds of crazy things), behavioral scientists conducted an experiment where they placed five monkeys in a room with a stepladder and a bunch of bananas hanging from the ceiling. The monkeys quickly figured out that they could climb the ladder and eat the bananas, but every time the monkeys got near the stepladder, the scientists would douse the entire room in ice cold water. You can guess what that generated: angry monkeys. Soon, none of the monkeys would go near the ladder.&lt;br /&gt;Then, the scientists replaced one of the monkeys with a new monkey, who had not been subject&lt;br /&gt;to the blasts of water. The first thing he did was make a beeline for the ladder, and all the other monkeys beat him up. He didn’t know why they were beating him up, but he quickly learned: don’t go near the ladder. Gradually, the scientists replaced the original monkeys with new monkeys until they had a group of monkeys who had never been doused with cold water, yet they would still attack any monkey that approached the ladder.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;Skąd taka historyjka w książce dla programistów? Cóż...&lt;br /&gt;&lt;br /&gt;Nie zdarzyło Ci się nigdy uczestniczyć w takiej dyskusji:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Dlaczego tak to robisz/robimy?&lt;br /&gt;- Bo zawsze tak robiliśmy i było dobrze.&lt;/span&gt;&lt;br /&gt;Właśnie zostałeś pobity przez "wkurzoną małpe"!!&lt;br /&gt;&lt;br /&gt;Trzeba pytać i kwestionować decyzje, które często były podjęte jakiś czas temu w innych warunkach i teraz są nieadekwatne. Jednak przede wszystkim należy oczekiwać rzeczowych argumentów przemawiających za decyzją. Jeśli ich nie ma nie podejmować jej!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-9193280467482973971?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/9193280467482973971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=9193280467482973971' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9193280467482973971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9193280467482973971'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/angry-monkeys-stroy-experiment.html' title='Angry monkeys story (experiment)'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SYBa4ExhA-I/AAAAAAAABMk/u9796mtVPP8/s72-c/productive+programmer.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6851424659826990761</id><published>2009-01-26T18:28:00.020+01:00</published><updated>2009-02-01T17:43:50.395+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pre-tested commit'/><category scheme='http://www.blogger.com/atom/ns#' term='TeamCity'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>TeamCity &amp; Sonar presentation</title><content type='html'>&lt;p&gt;Od pewnego czasu w pracy zajmuję się środowiskiem (&lt;a href="http://en.wikipedia.org/wiki/Software_configuration_management"&gt;SCM&lt;/a&gt;?) w pewnym (póki co) niezbyt dużym, nowym projekcie. Z paru różnych względów jako build sytem wybrany został Maven2. Dla mnie i teamu w którym pracuje jest to pewna nowość bo od dwóch lat budowaliśmy naszą poprzednią aplikację wykorzystując Ant'a (wraz z Ivy). Dlaczego został wybrany Maven? Dobre pytanie i postaram się na nie odpowiedzieć w innym poście dotyczącym samego Maven'a i moich subiektywnych refleksji na temat pracy z nim.&lt;br /&gt;&lt;br /&gt;Dziś mam zamiar się z Wami podzielić informacjami, które przekazałem kolegom ze swojego zespołu dotyczącymi pracy z &lt;a href="http://www.jetbrains.com/teamcity/index.html"&gt;TeamCity&lt;/a&gt; oraz Sonar'em. Zostały one przekazane pod czas tutułowej prezentacji. Niestety - jak stwierdził jeden z kolegów - szkoda, że nie została ona nagrana. Coż może kiedys, ją powtórzę i będzie okazja zapisu jej w formie audiowizualnej. Na razie musi Wam wystraczyć zwykły tekst...&lt;br /&gt;&lt;br /&gt;Jak już pisałem nowy projekt, nowy build system (dla nas) tak więc stwierdziłem, że nowy serwer CI też bedzię odpowiedni. Na TeamCity natknąłem się już pare miesięcy temu (pewnie jakiś post na JavaLobby) i odrazu sposobała mi się jego unikatowa funkcjonalność - mianowicie &lt;span style="font-weight: bold;"&gt;pre-tested commit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Zanim ją tutaj opiszą, to po krótce przypomnę sposób pracy, który pewnie dla wielu z Was jest zwykłym,  standardowym - dla nas był/jest.&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Schemat wygląda mniej więcej tak:&lt;ol&gt;&lt;br /&gt;&lt;li&gt;robimy check-out projektu (lub update kodu)&lt;/li&gt;&lt;li&gt;dokonujemy zmian w paru klasach &lt;/li&gt;&lt;li&gt;&lt;em&gt;[opcjonalnie] &lt;/em&gt;odapalamy testy&lt;/li&gt;&lt;li&gt;komitujemy pliki (przepraszam ze spolszczenie słowa commit, ale tak już będe pisać ;-)&lt;/li&gt;&lt;li&gt;&lt;em&gt;[opcjonalnie]&lt;/em&gt; patrzymy czy wszystko gra na serwerze CI  (&lt;em&gt;Continuous integration&lt;/em&gt;)&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.jetbrains.com/teamcity/img/Standard-scenario.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 390px; height: 440px;" src="http://www.jetbrains.com/teamcity/img/Standard-scenario.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Elementy oznaczone tagiem &lt;em&gt;[opcjonalne]&lt;/em&gt; są tylko z przekory, ponieważ nie wszyscy się do nich stosują. Z testami lokalnymi czy bez nich &lt;strong&gt;taki schemat pracy ma bardzo poważną wade&lt;/strong&gt;: bardzo łatwo w repozytorium kodu może pojwić się kod przez który nie przechodzą testy lub w ogole się nie kompiluje (jak ktoś skomitował nie wszystkie klasy bo na przykład o jednej zapomniał). &lt;/p&gt;&lt;br /&gt;Aby temu zaradzić powstał właśnie &lt;strong&gt;pre-tested commit&lt;/strong&gt;. Funkcjonalność ta, pozwala na wysłanie swoich zmian "wychodzących" w kodzie nie do repozytorium kodu (jak to było dotychczas) ale do serwera CI.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_EEfMPS_r4rA/SX4NVALTmgI/AAAAAAAABMc/NiY-VYyrTuQ/s1600-h/TeamCity-scenario.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 338px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SX4NVALTmgI/AAAAAAAABMc/NiY-VYyrTuQ/s400/TeamCity-scenario.jpg" alt="" id="BLOGGER_PHOTO_ID_5295684866310117890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Teraz schemat pracy wygląda następująco:&lt;ol&gt;&lt;li&gt;Check-out projektu (update kodu)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Edycja&lt;/li&gt;&lt;li&gt;Wysłanie wyedytowanych plików do TeamCity&lt;/li&gt;&lt;li&gt;TeamCity "weźmie" nasze pliki, dołączy do nich resztę plików projektu (z repozytorium) i zbuduję taką "hybrydę". Taki build nazywa się &lt;em&gt;personal build.&lt;/em&gt; &lt;/li&gt;&lt;li&gt;Jeśli taki build się powiedzie to TeamCity automatycznie zakomituje nasze zmiany do repozytorium (używając naszego konta). &lt;/li&gt;&lt;li&gt;Jeśli natomiast się nie uda to ... NIC! Zupełnie nic się nie stało!!! Dostaniemy tylko wiadomość, że się nie udało, jednak kod w repozytorium nadal jest OK, ponieważ nikt nie skomitował crap'u.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Prawda, że super? &lt;em&gt;Dla mnie bomba! &lt;/em&gt;Zalety są tak oczywiste, że chyba nawet nie będe ich tutaj wypisywać&lt;/p&gt;&lt;p&gt;Co więcej, po wysłaniu plików do TeamCity, czyli po punkcie nr 3 możemy nadal kontynuować pracę z naszym kodem. Plugin do IDE zadba o to aby nas poinformować co z naszy prywatnym buildem (&lt;em&gt;personal build&lt;/em&gt;) się stało jak tylko się on zakończy. Praktycznie nie trzeba wychodzić z IDE. Po więcej informacji na temat &lt;a href="http://www.jetbrains.com/teamcity/delayed_commit.html"&gt;pre-tested commit odsyłam Was do strony produktu&lt;/a&gt;. Tak na marginesie dodam, że istnieje możliwość "odpalenia" naszych zmian na TeamCity bez ich automatycznego komitowania, nazywa się to właśnie &lt;em&gt;personal build&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Jeśli chodzi o sam plugin do IDE to miałem przyjemność pracować z wersją dla Eclipse, są jeszcze dostępne inne (&lt;a href="http://www.jetbrains.com/teamcity/features/supported_platforms.html#Supported_IDEs"&gt;lista wspieranych IDE&lt;/a&gt;). Instaluje się bezproblemowo i dostarcza cztery nowe "zakładki", z których najważniejsza to &lt;em&gt;Remote Run&lt;/em&gt;, która pozwala nam wybrać pliki do  wysłania na TeamCity w celu wykonania &lt;em&gt;personal build&lt;/em&gt; lub &lt;em&gt;pre-tested commit&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Plugin pozwala nam również w czasie rzeczywistym oglądać logi z buildów na serwerze w zwykłej eclipsowej zakładce &lt;em&gt;Console&lt;/em&gt;. Zarówno &lt;em&gt;personal builds&lt;/em&gt; jak i zwykłe - mnie ta funkcjonalność osobiście powaliła. Podobnie mamy zakładke która pokazuje prawie tak samo jak plugin do JUnita które testy nie przeszły, pokazuje stacktrace i zapewnia możliwość łatwego "doklikania" się do testu (klasy) który nie przeszedł. &lt;/p&gt;&lt;p&gt;Plugin oferuje nam jeszcze pare innych ciekawych opcji, które jednak już pominę w moim opisie. Zostawiam to Wam drodzy czytelnicy :-)&lt;/p&gt;&lt;p&gt;Wow. To zdecydowanie mój nadłuższy post... a nie powiedziałem jeszcze wszystkiego o TeamCity, że o Sonarze nie wspomnę. Chyba jednak nie będe przesadzał i o Sonarze napiszę kiedy indziej. Podobnie, pozostałe zalety TeamCity wymienię w następnym poście.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://pawelzubkiewicz.blogspot.com/2009/01/teamcity-sonar-presentation-part-2.html"&gt;Link do części drugiej.&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6851424659826990761?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6851424659826990761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6851424659826990761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6851424659826990761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6851424659826990761'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/teamcity-sonar-presentation.html' title='TeamCity &amp; Sonar presentation'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SX4NVALTmgI/AAAAAAAABMc/NiY-VYyrTuQ/s72-c/TeamCity-scenario.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-1790296355643093627</id><published>2009-01-22T22:12:00.008+01:00</published><updated>2009-01-22T22:36:42.151+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='kariera'/><title type='text'>Agile Development Poster</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.versionone.com/pdf/AgilePoster.pdf"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 257px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SXjhY3A-ihI/AAAAAAAABLo/LeRehlgc5JA/s400/agiledev.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5294229179175176722" /&gt;&lt;/a&gt;&lt;br /&gt;Plakat pokazujący zwinne praktyki - możesz wydrukować powiesić w firmie w kuchni lub szefowi nad biurkiem... poważnie :-)&lt;br /&gt;&lt;br /&gt;Myśle, że w bardzo &lt;span style="font-style:italic;"&gt;zmyślny&lt;/span&gt; sposób zostały na nim pokazane praktyki Agile. &lt;br /&gt;Jeśli komuś jeszcze nie weszły one w krew (tak jak mi, bo projekt przy którym pracuje przestał być agile - NIESTETY) to na prawdę radzę &lt;a href="http://www.versionone.com/pdf/AgilePoster.pdf"&gt;ściągnąć&lt;/a&gt;, wydrukować w paru kopiach, jedną powiesić przy swoim biurku, pozostałe dać kolegom z pracy... &lt;br /&gt;Osobiście uważam, że będzie dużo łatwiej zrobić stand-up codziennie rano, widząc że jest to ważna część większej przemyślanej całości.&lt;br /&gt;&lt;br /&gt;Swoją drogą od lutego zmieniam pracodawcę i już nie mogę się doczekać, aby sprawdzić jak bardzo Agile będziemy (wszyscy razem) w nowym teamie w nowej firmie. Było to dla mnie jednym z ważniejsz wyznaczników przy wyborze nowego miejsca zatrudnienia, aby pracować zgodnie ze zwinnymi metodykami.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-1790296355643093627?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/1790296355643093627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=1790296355643093627' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1790296355643093627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1790296355643093627'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/agile-development-poster.html' title='Agile Development Poster'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SXjhY3A-ihI/AAAAAAAABLo/LeRehlgc5JA/s72-c/agiledev.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8679355049635420774</id><published>2009-01-16T15:21:00.004+01:00</published><updated>2009-01-16T15:43:42.634+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='clean code'/><category scheme='http://www.blogger.com/atom/ns#' term='dobre praktyki'/><category scheme='http://www.blogger.com/atom/ns#' term='refaktoryzacja'/><title type='text'>Leave the campground cleaner than you found it</title><content type='html'>Tytuł dzisiejszego posta jest zarazem jego główną treścią. Kto czytał &lt;a href="http://www.informit.com/store/product.aspx?isbn=0132350882"&gt;Clean Code&lt;/a&gt; (&lt;a href="http://pawelzubkiewicz.blogspot.com/2008/11/clean-code.html"&gt;o którym już pisałem wcześniej tutaj&lt;/a&gt;) ten wie.&lt;br /&gt;&lt;br /&gt;Dziś się wkurzyłem bo znów natrafiłem na tą sama paskudnie napisaną klase. Oczywiście to kto inny ją napisał i dlatego nie chciało mi się jej poprawiać. Jednak dziś już nie wytrzymałem i postanowiłem chociaż lekko ją zrefaktoryzować aby znów ta sama historia się nie powtórzyła. Poprawki zaszły nawet troche dalej niż myślałem na początku i klasa wygląda lepiej niż wcześniej. Dobrze.&lt;br /&gt;&lt;br /&gt;Jednocześnie od razu postanowiłem się z Wami tym podzielić. O co chodzi? Właśnie o to tytułowe hasło, które &lt;span style="font-style:italic;"&gt;nota bene&lt;/span&gt; jest hasłem amerykańskich scoutów. Zasadniczo chodzi o to aby gdy zobaczymy jakiś słaby kawałek kodu, który wiemy jak poprawić, zrobić to! Po prostu tylko tyle. Widzisz jakiś crap - sprzątasz go. Bez różnicy kto go zrobił i kiedy.&lt;br /&gt;&lt;br /&gt;Pamiętajcie, w Agile kod nie jest własnością poszczególnych programistów, którzy go napisali. Kod to wspólne dobro i odpowiedzialność, dlatego jak widzisz w jakiejś klasie nieczytelne metody i wiesz jak je poprawić ZRÓB TO!&lt;br /&gt;Pomyśl sobie jak pięknie będzie wyglądać projekt jak każdy będzie w ten sposób postępował :-)&lt;br /&gt;&lt;br /&gt;Dodatkowych pare argumentów za tą praktyką znajdziecie &lt;a href="http://www.informit.com/articles/article.aspx?p=1235624&amp;seqNum=6"&gt;tutaj, na stronie książĸi&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8679355049635420774?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8679355049635420774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8679355049635420774' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8679355049635420774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8679355049635420774'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/leave-campground-cleaner-than-you-found.html' title='Leave the campground cleaner than you found it'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-6504113417706175712</id><published>2009-01-13T12:29:00.004+01:00</published><updated>2009-01-13T13:07:36.277+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='podcast'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>Continuous Integration - Podcast</title><content type='html'>Natknąłem się dziś na całkiem przyjemne materiały dotyczące praktyk Agile. Znajdują się one na stronie &lt;a href="http://agiletuning.pl/"&gt;agiletuning.pl&lt;/a&gt;. Dostępne są w atrakcyjnej formie podcastów - czyli audio. Właśnie sobie słucham &lt;a href="http://agiletuning.pl/2009/01/12/odcinek-05-ciagla-integracja/"&gt;najnowszego podcasta&lt;/a&gt; omawiającego praktykę &lt;a href="http://en.wikipedia.org/wiki/Continuous_Integration"&gt;continuous integration&lt;/a&gt; (&lt;span style="font-style:italic;"&gt;nota bene&lt;/span&gt; dobrze mi znaną). &lt;br /&gt;Podoba mi się luźna forma przekazu wzbogacona wieloma "historyjkami z pola bitwy" autorów. Słucha się tego jakby się rozmowiało z kumplami z innego teamu, po pracy przy piwku :-) &lt;br /&gt;Usłyszymy wiele dobrych rad, pomysłów i praktyk jak lepiej pracować wykorzystująć praktyke &lt;span style="font-style:italic;"&gt;ciągłej integracji&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Oczywiście autorzy nie odkrywają ani koła ani Ameryki na nowo. Prawdopodobnie wiekszość osob, które miało okazje pracować zgodnie z metodykami Agile po wysłuchaniu tego podcasta pokiwa głową, pare razy powie "aha".. No i super. Podcast trwa 20 minut, słuchając go możesz robić coś innego - wysłuchanie go &lt;span style="font-weight:bold;"&gt;nic&lt;/span&gt; Cię nie koszutuje, a jednak masz szanse, że usłyszysz coś nowego, coś o czym wcześniej nie wiedziałeś i będziesz chciał tego użyć w swojej pracy. BTW: Próbowałem kiedyś przekonać szefostwo do TeamCity bo też uważam, że to bardzo fajne narzędzie - jednak się nie udało :-(&lt;br /&gt;&lt;br /&gt;Osobiście bardzo mi się podoba, że w ogromnej liczbie blogów IT, ktoś postanowił zadabać o atrakcyjność przekazu swojej treści i nagrał to co miał do powiedzenia :-)&lt;br /&gt;Tak trzymać!! Opisany tutaj przez mnie odcinek jest już 5 z koleji, poprzednie omawiają następujące tematy:&lt;ul&gt;&lt;li&gt;&lt;a href="http://agiletuning.pl/2008/12/03/odcinek-04-kryteria-akceptacyjne/"&gt;Kryteria Akceptacyjne&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://agiletuning.pl/2008/11/03/odcinek-02-programowanie-w-parach/"&gt;Programowanie w parach część 1&lt;/a&gt; i &lt;a href="http://agiletuning.pl/2008/11/17/odcinek-03-programowanie-w-parach-cz-2/"&gt;część 2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://agiletuning.pl/2008/10/20/odcinek-01-stand-up/"&gt;Stand Up!&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-6504113417706175712?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/6504113417706175712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=6504113417706175712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6504113417706175712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/6504113417706175712'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/continuous-integration-podcast.html' title='Continuous Integration - Podcast'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-2251773457472393568</id><published>2009-01-11T23:09:00.000+01:00</published><updated>2009-01-11T23:51:08.987+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pisma'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Java exPress'/><title type='text'>JAVA exPress</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dworld.pl/java-express/"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 85px;" src="http://4.bp.blogspot.com/_EEfMPS_r4rA/SWpwa6Fo45I/AAAAAAAABLg/PH-JP7aI2bI/s320/logo_javaexPress.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290164319871886226" /&gt;&lt;/a&gt;&lt;br /&gt;Nowy numer &lt;span style="font-style:italic;"&gt;JAVA exPress&lt;/span&gt; już jest! Tak wiem, że to dość stare wieści (&lt;a href="http://dworld.pl/javaexpress/download/Java_exPress_002_2008_12.pdf"&gt;numer 2&lt;/a&gt; wydany został 6 grudnia!). Jednak uważam, że warto o tym wspomnieć (nawet jeśli to troche trąci odgrzewaniem kotleta). &lt;br /&gt;Jak ostatnio się przekonałem w pracy, jest trochę osób, które nie znają tego pisma. A szkoda. Właśnie z myślą o nich piszę tego posta (czy jak taki wpis na blogu się nazywa? jestem trochę nowy w tym całym "blogowaniu" - ciężko mi idzie się przyzwyczaić). &lt;br /&gt;&lt;br /&gt;Pismo nabiera rozmachu i muszę przyznać, że nie ma dla niego konkurencji na rodzimym rynku wydawniczym. Oczywiście poza blogami paru prężnych programistów - którzy z resztą już lub w niedalekiej przyszłości (o)publikują swoje teksty w &lt;span style="font-style:italic;"&gt;JAVA exPress&lt;/span&gt;. Tak trzymać! &lt;br /&gt;Póki, co nie znajdziemy tam może mocno zaawansowanych tekstów ale myślę, że nawet "stary wyjadacz" powinien dla spokoju ducha rzucić okiem na teksty kolegów po fachu. Polecam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-2251773457472393568?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/2251773457472393568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=2251773457472393568' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2251773457472393568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/2251773457472393568'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/java-express.html' title='JAVA exPress'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_EEfMPS_r4rA/SWpwa6Fo45I/AAAAAAAABLg/PH-JP7aI2bI/s72-c/logo_javaexPress.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-9083488938078144513</id><published>2009-01-03T23:45:00.001+01:00</published><updated>2009-01-04T00:20:56.945+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career planning'/><category scheme='http://www.blogger.com/atom/ns#' term='kariera'/><category scheme='http://www.blogger.com/atom/ns#' term='java black belt'/><title type='text'>Small up-to-date</title><content type='html'>Znów minęło trochę czasu od ostatniego posta... mogę to wytłumaczyć :-)&lt;br /&gt;Urlop, Święta, sylwestry i inne takie tam skutecznie mój czas wypełniły. Jednak w tym gorącym okresie nie dałem się zupełnie odciągnąć od Javy, programowania, książek i nauki.&lt;br /&gt;&lt;br /&gt;Realizując powoli mój &lt;a href="http://pawelzubkiewicz.blogspot.com/2008/11/my-career-plan.html"&gt;Career Plan&lt;/a&gt; sięgnąłem po książę &lt;a href="http://www.manning.com/panda/"&gt;EJB3 in action&lt;/a&gt;. Pozycja ta ma mi pomóc w poznaniu i zrozumieniu tej technologii. Traktuję ją również jako podstawowy (co nie znaczy, że jedyny) środek przygotowań do &lt;a href="http://www.sun.com/training/certification/java/scbcd.xml"&gt;SCBCD&lt;/a&gt;. Możliwe, że gdy ją przeczytam to pokuszę się o napisanie jej krótkiej recenzji, chociaż sam nie wiem czy jest sens - jest to szeroko znana pozycja, więc zapewne już niejedną recenzje ma.&lt;br /&gt;&lt;br /&gt;Wracając do tematu tego posta, muszę się pochwalić, że udało mi się już zrealizować kolejny punkt z mojej listy celów na 3-6 miesięcy: zdobyłem &lt;a href="http://www.javablackbelt.com/UserView.wwa?userId=3607872"&gt;blue belt&lt;/a&gt; na JavaBlackBelt &lt;a href="http://www.javablackbelt.com/UserView.wwa?userId=3607872"&gt;&lt;img style="border: 0px;" src="http://www.javablackbelt.com/imgs/level/belt4_S.gif" /&gt;&lt;/a&gt;. Parę godzin nauki o JUnit 4 i test poszedł na 100%. Szkoda, że z SCBCD nie pójdzie tak łatwo...&lt;br /&gt;&lt;br /&gt;W każdym razie, nie ma co narzekać. Rok rozpoczyna się dobrze - mam nadzieje, że i tak się skończy :-D&lt;br /&gt;Czego i Wam życzę!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-9083488938078144513?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/9083488938078144513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=9083488938078144513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9083488938078144513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/9083488938078144513'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2009/01/small-up-to-date.html' title='Small up-to-date'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-1895728933009869183</id><published>2008-11-25T00:23:00.000+01:00</published><updated>2008-11-25T00:36:53.427+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career planning'/><category scheme='http://www.blogger.com/atom/ns#' term='planowanie kariery'/><category scheme='http://www.blogger.com/atom/ns#' term='kariera'/><category scheme='http://www.blogger.com/atom/ns#' term='zawód programista'/><title type='text'>My career plan</title><content type='html'>Kontynuując &lt;a href="http://pawelzubkiewicz.blogspot.com/2008/11/career-planning.html"&gt;mój poprzedni wpis&lt;/a&gt; umieszczam tutaj swoj plan kariery.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;My career plan&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Paweł Zubkiewicz&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;2008.11.10&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;3–6 Months&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Start blogging about Java (and maybe bikes)&lt;/li&gt; &lt;li&gt;Start developing own open source project&lt;/li&gt;   &lt;li&gt;Enhance my knowledge of Spring and Hibernate frameworks&lt;/li&gt; &lt;li&gt;Get blue belt on javablackbelt.com&lt;/li&gt; &lt;li&gt;Start preparing for next Sun certificate: SCBCD&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;6–12 Months&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Attain SCBCD certificate&lt;/li&gt;&lt;li&gt;Get familiar with JEE technology&lt;/li&gt; &lt;li&gt;Advertise my OS project so other people will actually use it&lt;/li&gt;  &lt;li&gt;Successfully finish my first IT project that will be shipped&lt;/li&gt;  &lt;li&gt;Enhance my knowledge of UML by reading a book or taking some training&lt;/li&gt; &lt;li&gt;Get brown belt on javablackbelt.com&lt;/li&gt;&lt;ul&gt;&lt;li&gt;succeed in Spring and Hibernate tests&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Beyond 12 Month&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Finish another projects in my professional work&lt;/li&gt;&lt;li&gt;Successfully finish project that I acted as lead designer.&lt;/li&gt;&lt;li&gt;Attain SCJD certificate&lt;/li&gt;&lt;li&gt;Ship version 1.0 of my OS project to the world :-)&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Longer-term Goals (3-5 years)&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Finally decide who I want to be: Architect or PM&lt;/li&gt; &lt;li&gt;Become experienced JEE developer &amp;amp; designer&lt;/li&gt; &lt;li&gt;Attain SCEA certificate&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Opportunities to Explore at Your Company&lt;/b&gt;&lt;ul&gt; &lt;li&gt;reading books&lt;/li&gt; &lt;li&gt;probably voucher for SCBCD&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Skills to Develop&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Technologies / frameworks&lt;/li&gt; &lt;ul&gt;  &lt;li&gt;EJB&lt;/li&gt;&lt;li&gt;Spring&lt;/li&gt;&lt;li&gt;Hibernate&lt;/li&gt;&lt;li&gt;UML&lt;/li&gt;&lt;li&gt;OSGi / ESB&lt;/li&gt;  &lt;/ul&gt; &lt;li&gt;Software design, better usage of patterns&lt;/li&gt; &lt;li&gt;My English&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;What I Care About in a Work Environment&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Learning new and developing my skills&lt;/li&gt; &lt;li&gt;New challenges&lt;/li&gt; &lt;li&gt;Actually shipping written software to someone&lt;/li&gt;&lt;li&gt;Interaction with customer&lt;/li&gt; &lt;li&gt;Good boss/pm who has power to change things and listens his/her workers&lt;/li&gt;  &lt;li&gt;Opportunity to work with people who have more knowledge and experience than I have&lt;/li&gt; &lt;li&gt;People who work with passion and care about project / their work&lt;/li&gt; &lt;li&gt;Good and new hardware (computers and servers)&lt;/li&gt; &lt;li&gt;Use English not just for reading (work with English speaking colleagues or customers)&lt;/li&gt;&lt;li&gt;Travels from time to time&lt;/li&gt;&lt;li&gt;Safe place for my bike - not necessary condition :)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Personal Goals&lt;/b&gt;&lt;ul&gt; &lt;li&gt;Go to China in July 2009 to see solar eclipse&lt;/li&gt; &lt;li&gt;Buy a car (so I can go snowboarding in Alps with no problems)&lt;/li&gt; &lt;li&gt;Start thinking about buying a flat&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-1895728933009869183?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/1895728933009869183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=1895728933009869183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1895728933009869183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/1895728933009869183'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2008/11/my-career-plan.html' title='My career plan'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-5328557134862242998</id><published>2008-11-24T22:57:00.001+01:00</published><updated>2008-11-25T00:32:14.934+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career planning'/><category scheme='http://www.blogger.com/atom/ns#' term='planowanie kariery'/><category scheme='http://www.blogger.com/atom/ns#' term='kariera'/><category scheme='http://www.blogger.com/atom/ns#' term='zawód programista'/><title type='text'>Career Planning</title><content type='html'>Jakieś dwa tygodnie temu podczas przeglądania blogów natknąłem się na link do krótkiego artykuł dotyczącego &lt;a href="http://www.boxesandarrows.com/view/planning_your_future"&gt;planowania kariery&lt;/a&gt;. Na tyle mnie zainteresował, że postanowiłem wprowadzić w życie zawarte tam porady i stworzyć swój własny Career Plan. &lt;br /&gt;&lt;br /&gt;Zadanie na pozór łatwe bo wręcz do znudzenia podczas różnych rozmów powtarzam, że &lt;span style="font-style:italic;"&gt;"pragnę rozwijać swoje umiejętności z zakresu programowania i projektowania oprogramowania aby zostać kiedyś Architektem Systemów badź PM'em"&lt;/span&gt;. Prosto, jasno i zgrabnie, prawda? &lt;br /&gt;Cóż, nie do końca.&lt;br /&gt;Ten "slogan" może dobrze brzmi ale nie odpowiada mi samemu na wiele pytań:&lt;br /&gt;- jak długo chce pogłębiać swoją wiedzę&lt;br /&gt;- czego chce się uczyć&lt;br /&gt;- kiedy chce podjąć decyzje Architekt czy PM&lt;br /&gt;- jakie przewiduję problemy i bariery do przezwyciężenia.&lt;br /&gt;&lt;br /&gt;Właśnie w odpowiedzi na te i inne pytania może pomóc przygotowania własnego planu kariery.&lt;br /&gt;&lt;br /&gt;Wystarczy się zatrzymać na chwile, stanąć z boku i przyjrzeć się sobie z innej perspektywy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Jeśli nie chcesz aby Twoje życie odjechało zbyt mocno od Twoich planów, od tego gdzie się widzisz za 6 miesięcy, a gdzie za 3 lata dobrze jest stworzyć taki plan. Plan w którym będzie czarno na białym napisane, co i kiedy chcesz osiągnąć. Dzięki temu łatwiej będzie Ci podejmować decyzje w przyszłości (np. dotyczące zmiany pracodawcy) i trwać w obranym przez Ciebie kierunku. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tak pomyślałem po przeczytaniu artykułu. Mając to na uwadze niezwłocznie przygotowałem taki plan, który &lt;a href="http://pawelzubkiewicz.blogspot.com/2008/11/my-career-plan.html"&gt;tutaj&lt;/a&gt; zamieszczam. Nie jest idealny, nie jest skończony, co więcej na pewno jeszcze będzie ewoluował jednak już teraz zaczyna spełniać swoje zadanie (w końcu pisze tego bloga ;-) I na pewno jeszcze nie raz pomoże podjąć mi słuszną, ze względu na rozwój mojej kariery, decyzje.&lt;br /&gt;&lt;br /&gt;Jeśli pragniesz stworzyć swój własny Career Plan polecam &lt;a href="http://www.boxesandarrows.com/view/planning_your_future"&gt;template&lt;/a&gt; z oryginalnego artykułu - ja z niego skorzystałem. Są tam podane opisy wyjaśniające, co powinno się znaleźć w każdej z sekcji.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-5328557134862242998?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/5328557134862242998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=5328557134862242998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5328557134862242998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/5328557134862242998'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2008/11/career-planning.html' title='Career Planning'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-8420776521158672681</id><published>2008-11-24T21:21:00.000+01:00</published><updated>2008-11-24T22:00:45.878+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='testowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='clean code'/><category scheme='http://www.blogger.com/atom/ns#' term='polecam'/><title type='text'>Guide to Writing Testable Code</title><content type='html'>Musze przyznać, że blogowanie nie do końca leży w mojej naturze dlatego dziś pójdę trochę na łatwiznę i tylko polecę Wam coś do przeczytania :-)&lt;br /&gt;&lt;br /&gt;Tym razem jest to post, w którym zawarta jest lista smelli na które należy zwracać uwagę aby kod który piszemy był testowalny. Czyli lepszy. Post znajduje się pod &lt;a href="http://misko.hevery.com/2008/11/24/guide-to-writing-testable-code/"&gt;tym linkiem&lt;/a&gt;. Napisany przez &lt;a href="http://misko.hevery.com/"&gt;Miško Hevery&lt;/a&gt;, programistę i testera z Googla. Generalnie facet nie odkrywa Ameryki, może jednak warto zajrzeć i zobaczyć czy przypadkiem nie przeoczamy niektórych smelli w naszym kodzie?&lt;br /&gt;&lt;br /&gt;Jak już pisze o poście Miško to również polecam Wam jego wystąpienia z tegorocznych Google Tech Talks dotyczące &lt;a href="http://misko.hevery.com/2008/11/04/clean-code-talks-unit-testing/"&gt;testów jednostkowych&lt;/a&gt; oraz programowania w taki sposób aby kod był łatwy do testowania po przez zastosowanie &lt;a href="http://misko.hevery.com/2008/11/11/clean-code-talks-dependency-injection/"&gt;  wstrzykiwania zależnośći (DI)&lt;/a&gt;.&lt;br /&gt;Wiadomo, im łatwiej napisać test tym więcej tych testów powstanie, co generalnie jest dobrą rzeczą :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-8420776521158672681?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/8420776521158672681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=8420776521158672681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8420776521158672681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/8420776521158672681'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2008/11/guide-to-writing-testable-code.html' title='Guide to Writing Testable Code'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8669613772297521930.post-3863523208993391159</id><published>2008-11-16T23:20:00.000+01:00</published><updated>2008-11-17T11:29:08.161+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='clean code'/><category scheme='http://www.blogger.com/atom/ns#' term='książki'/><title type='text'>Clean Code</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.informit.com/ShowCover.aspx?isbn=0132350882&amp;type=f"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 160px; height: 212px;" src="http://www.informit.com/ShowCover.aspx?isbn=0132350882&amp;type=f" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Mój pierwszy wpis na blogu będzie dotyczył książki, którą właśnie przeczytałem. &lt;br /&gt;&lt;a href="http://www.informit.com/store/product.aspx?isbn=9780132350884"&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;/a&gt; autorem której jest Robert C. Martin - znany również jako Uncle Bob (&lt;a href="http://blog.objectmentor.com/articles/category/uncle-bobs-blatherings"&gt;link do jego bloga&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Książka ta póki co jest jeszcze mało znana w Polsce, a szkoda! Pozycja jest dosyć obszerna, a sam autor przyznaje, że momentami będzie wymagała od czytelnika zaangażowania w analizowanie kodu (którego jest sporo w książce - o czym za chwile). &lt;br /&gt;Pierwszą część książki czyta się szybko i przyjemnie. Otwierają ją zebrane wypowiedzi eskpertów, czym dla nich jest "clean code". Po czym autor szczegółowo omawia zasady jakimi programista Javy powinien się kierować aby jego kod był jasny i przejrzysty. Tak, więc dowiemy się z niej:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;jak nazywać zmienne, metody, klasy?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;dlaczego nie używać komentarzy?&lt;/li&gt; &lt;br /&gt;&lt;li&gt;jak formatować kod?&lt;/li&gt; &lt;br /&gt;&lt;li&gt;jak długie powinny byc metody i co powinny robić?&lt;/li&gt; &lt;br /&gt;&lt;li&gt;jak należy testować kod?&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;Sama ta cześć mogła by stanowić samodzielną książkę - z resztą podobną napisał Kent Beck, nazywa się &lt;a href="http://www.informit.com/store/product.aspx?isbn=0321413091"&gt;Implementation Patterns&lt;/a&gt;, swoją drogą również świetna pozycja. Jednak Robert C. Martin na tym nie skończył. &lt;br /&gt;&lt;br /&gt;Druga cześć to obszerne przykłady refaktoryzacji kodu, pokazujące, dosłownie krok po kroku, prace jakiej dokonał autor aby kod stał się lepszy. Czyli jasny i przejrzysty. Jestem pod wielkim wrażeniem tej części książki! To prawie jakby uprawiać Pair Programming z Uncle Bob'em, widzimy tutaj każde działanie, każdy etap pracy. W tej części nie ma już miejsca na "lekkie czytanie", trzeba się dużo zastanawiać i analizować przedstawiony kody, często wertować ksiażke aby przeglądać listingi. Cóż, nie ma nic za darmo.&lt;br /&gt;&lt;br /&gt;Na dokładkę dostajemy jeszcze listę "smelli i heurystyk" która koncentruje większość ważnych myśli i zasad omówionych w książce. Taki guideline dobrej implementacji.&lt;br /&gt;&lt;br /&gt;Z książki dowiemy się również jak Uncle Bob podchodzi do swojego zawodu, co rozumie przez "craftsmanship" (ang. kunszt, rzemiosło, mistrzostwo) oraz "clean code"? &lt;br /&gt;&lt;br /&gt;Szczerze polecam każdemu programiście pragnącemu poprawić swój warsztat i produkowany kod.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8669613772297521930-3863523208993391159?l=pawelzubkiewicz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pawelzubkiewicz.blogspot.com/feeds/3863523208993391159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8669613772297521930&amp;postID=3863523208993391159' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3863523208993391159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8669613772297521930/posts/default/3863523208993391159'/><link rel='alternate' type='text/html' href='http://pawelzubkiewicz.blogspot.com/2008/11/clean-code.html' title='Clean Code'/><author><name>Paweł Zubkiewicz</name><uri>http://www.blogger.com/profile/18114391455936387348</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
