<?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-22970272</id><updated>2012-02-10T23:26:53.055-08:00</updated><title type='text'>Vladi's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22970272.post-6832119826325751398</id><published>2011-11-21T13:37:00.000-08:00</published><updated>2011-11-21T13:40:42.238-08:00</updated><title type='text'>WebCam not working on Sony Vaio VPCCB</title><content type='html'>Suddenly the WebCam on my wife's Sony Vaio VPCCB stopped working. In the Device Manager one Device was labeled as "Unknown Device" in the USB section and I couldn't fix it by downloading any drivers.&lt;br /&gt;&lt;br /&gt;After a long search I found out that updating the BIOS might work. Then I went to the Sony Support Site and downloaded a BIOS Update Utility. This worked great and after updating the BIOS my WabCam worked again.&lt;br /&gt;&lt;br /&gt;If you have similar problems, then try this solution. I hope it works for you as it did for me.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-6832119826325751398?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/6832119826325751398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=6832119826325751398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/6832119826325751398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/6832119826325751398'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2011/11/webcam-not-working-on-sony-vaio-vpccb.html' title='WebCam not working on Sony Vaio VPCCB'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-5916162229636661523</id><published>2010-04-08T13:05:00.000-07:00</published><updated>2010-04-08T13:30:59.478-07:00</updated><title type='text'>La Sagrada Familia - an example of evolving architecture. An analogy to agile software development?</title><content type='html'>Just recently I watched a documentary on Barcelona. An interesting fact that I learned was that the cathedral La Sagrada Familia is not being developed according to a complete architecture plan. The architect of the cathedral Antoni Gaudí rather changed his vision for the cathedral as it was being built. Along the process of the construction he gained new ideas which lead him to move away from the initial architecture. He was "adapting to change".&lt;br /&gt;&lt;br /&gt;All of this seems quite familiar to software engineers, don't you think? This is what we try to do by applying the agile methods of software development. We try to get better in adapting to change. We try to develop architecture iteratively along the way as we build further parts of the system. We do this since our requirements change, since the business changes, since new ideas how to do things better come to our minds, since we learn from our experience.&lt;br /&gt;&lt;br /&gt;I find the comparison with La Sagrada Familia a wonderful analogy. Of course this comparison cannot be a proof supporting the efficiency of agile development of software architecture, but it still adds a certain flair to the discussion. If all software architecture was so remarkable as La Sagrada Familia, the world would have been a better place. At least for software developers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7tS6_5u4Q74/S748kyxNuiI/AAAAAAAAADE/KG6ss-USMAE/s1600/Sagrada_familia_by_night.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 270px;" src="http://1.bp.blogspot.com/_7tS6_5u4Q74/S748kyxNuiI/AAAAAAAAADE/KG6ss-USMAE/s320/Sagrada_familia_by_night.jpg" alt="" id="BLOGGER_PHOTO_ID_5457866401220770338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-5916162229636661523?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/5916162229636661523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=5916162229636661523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/5916162229636661523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/5916162229636661523'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2010/04/la-sagrada-familia-example-of-evolving.html' title='La Sagrada Familia - an example of evolving architecture. An analogy to agile software development?'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7tS6_5u4Q74/S748kyxNuiI/AAAAAAAAADE/KG6ss-USMAE/s72-c/Sagrada_familia_by_night.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-8339222470761193665</id><published>2009-09-17T12:51:00.000-07:00</published><updated>2009-09-17T13:07:14.614-07:00</updated><title type='text'>MMS News</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7tS6_5u4Q74/SrKV_0s2CuI/AAAAAAAAAC8/5bYMxLy5rbw/s1600-h/04092009734.jpg"&gt;&lt;/a&gt;I am currently very excited about the idea that the online edition of the Bulgarian newspaper &lt;a href="http://dnevnik.bg/"&gt;"Dnevnik"&lt;/a&gt; has introduced. The have a column called "MMS News". The concept is that anyone can send a photo with a short comment to the newspaper  through his or hers mobile phone. If the news is interesting, it gets posted and the readers can comment on it or even rate the comments of other readers. &lt;div&gt;This way everyone can turn into a columnist or a street reporter. The content of the "MMS News" is great as well. Very funny stuff. Very sad stuff as well. The photos are often targeted to the community with the  idea to change things to the better. They often expose the absurd side of the life in Bulgaria. The "MMS News" often show, what everybody already knows but doesn't dare to talk about in public.&lt;/div&gt;&lt;div&gt;I also posted some stuff myself. It's a lot of fun. Seeing your name in the newspaper is somewhat cool. I even have an idea for a second post. I share it first here with you:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Down turn only... probably into a street hole.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://2.bp.blogspot.com/_7tS6_5u4Q74/SrKV_0s2CuI/AAAAAAAAAC8/5bYMxLy5rbw/s400/04092009734.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5382529428372196066" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 300px; " /&gt;&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/22970272-8339222470761193665?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://dnevnik.bg/mms_novini/' title='MMS News'/><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/8339222470761193665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=8339222470761193665' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/8339222470761193665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/8339222470761193665'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2009/09/mms-news.html' title='MMS News'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7tS6_5u4Q74/SrKV_0s2CuI/AAAAAAAAAC8/5bYMxLy5rbw/s72-c/04092009734.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-142975788262651085</id><published>2009-09-14T13:12:00.000-07:00</published><updated>2009-09-14T13:43:27.904-07:00</updated><title type='text'>If it's crap... we'll tell you</title><content type='html'>This is the motto of my favorite movie review site on the net: &lt;a href="http://spill.com/"&gt;spill.com&lt;/a&gt;. Having such a motto makes it pretty obvious that these guys does not take themselves very seriously. That's what I live about this site.&lt;br /&gt;&lt;br /&gt;Spill.com is an animated movie review site where a bunch of friends are throwing jokes and comments on some latest film, as you would talk about it with your own friends. What I personally find very original are the rating categories "Some ole Bull**t!" being the lowest, through "Rental", "Matinee!", "Full Price!!" and "Better Than Sex!" being the highest. The site is all about fun but the reviews are still quite fair.&lt;br /&gt;&lt;br /&gt;A typical feature of the reviews is the ending. Each review ends with some brutal or very ironic joke. The fans of black humor will love it.&lt;br /&gt;&lt;br /&gt;Only for a reference, there are just three movies that have been awarded the "Better Than Sex!" rating: "Cloverfield", "District 9" and my all time favorite "The Dark Knight".&lt;br /&gt;&lt;br /&gt;You don't need to agree, but it's still worth it to check it out!&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7tS6_5u4Q74/Sq6qqqSbaiI/AAAAAAAAAC0/OTgAtUqFDio/s1600-h/spill.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 659px; height: 77px;" src="http://2.bp.blogspot.com/_7tS6_5u4Q74/Sq6qqqSbaiI/AAAAAAAAAC0/OTgAtUqFDio/s400/spill.jpg" alt="" id="BLOGGER_PHOTO_ID_5381426254637132322" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-142975788262651085?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://spill.com' title='If it&apos;s crap... we&apos;ll tell you'/><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/142975788262651085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=142975788262651085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/142975788262651085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/142975788262651085'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2009/09/if-its-crap-well-tell-you.html' title='If it&apos;s crap... we&apos;ll tell you'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7tS6_5u4Q74/Sq6qqqSbaiI/AAAAAAAAAC0/OTgAtUqFDio/s72-c/spill.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-7391204550466558902</id><published>2009-05-12T12:46:00.001-07:00</published><updated>2009-05-12T12:58:19.137-07:00</updated><title type='text'>Selenium Server Does Not Load Complete Firefox Profile</title><content type='html'>I was trying to setup a standalone selenium server for my acceptance tests and came up with a problem.&lt;br /&gt;&lt;br /&gt;I have a prepared firefox profile holding various certificates so that while running the tests I don't come across the annoying certificate pop-up windows.&lt;br /&gt;&lt;br /&gt;The problem that I had while trying to execute my selenium tests was that the selenium server was not loading the complete firefox profile and the certificates couldn't be found. This lead to the certificate verification dialogs popping up and interrupting the tests. Quite an annoying problem to deal with, since there was no logical explanation to me. Opening the firefox profile with "firefox -ProfileManage", I could check whether the certificates were correctly set up. Of course, this was the case so this lead me nowhere.&lt;br /&gt;&lt;br /&gt;I was starting the selenium server as follows:&lt;br /&gt;&lt;br /&gt;java -jar selenium-server.jar -firefoxProfileTemplate &lt;path to my profile&gt; -port 4444&lt;br /&gt;&lt;br /&gt;The I tried the following which solved the problem: I downloaded the standalone jar (standalone.jar or selenium-server-1.0-beta-2-standalone.jar) and replaced it with the one I was using:&lt;br /&gt;&lt;br /&gt;java -jar selenium-server-1.0-beta-2-standalone.jar -firefoxProfileTemplate &lt;path to my profile&gt; -port 4444&lt;br /&gt;&lt;br /&gt;If you have a similar problem, try this out. It helped me. Good Luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-7391204550466558902?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/7391204550466558902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=7391204550466558902' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7391204550466558902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7391204550466558902'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2009/05/selenium-server-does-not-load-complete.html' title='Selenium Server Does Not Load Complete Firefox Profile'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-34330001923974700</id><published>2009-04-30T14:13:00.000-07:00</published><updated>2009-04-30T14:55:18.299-07:00</updated><title type='text'>Choosing a Test Framework</title><content type='html'>Choosing a test framework might at first look like a trivial problem to solve but the decision can have a significant impact on the project development. In my opinion it is worth spending some time to think through. I would like to share what would be important for me to choose one framework over the other.&lt;br /&gt;&lt;br /&gt;1. What needs to be tested&lt;br /&gt;Of course. This is obvious. Dependent on the software you want to test, whether it is a GUI-Application, a WebService, an API packaged as a jar file, etc. you might need different solutions. For GUI Applications for example you would need a framework capable of interacting with the application. For a WebService this is certainly not needed. But you will most probably need to check some conditions involving database state, file system or other external systems which are used by the WebService. When testing an API it might even be the case that you only need an xUnit framework which simply provides input to the API and checks the output. Of course, this depends on the API.&lt;br /&gt;&lt;br /&gt;2. Usability&lt;br /&gt;An important factor is the usability, since it will affect the acceptance that the framework has among your team members. The easier the framework is to use, the greater acceptance it would get and the more tests will be produced. I like having more tests. It gives me a sense of being safe.&lt;br /&gt;&lt;br /&gt;3. Maintenance&lt;br /&gt;This is a tricky one. I personally like frameworks where I can extract parts common for several tests in separate units. It should be able to write tests by assembling existing keywords, methods or whatever it is that the framework supports for providing modularization. Any framework based on a programming language supports this, since modularization can be achieved by simply extracting the common functionality in methods or classes. For GUI frameworks this is not always the case. I prefer Selenium, for example, since there the tests can be written in Java which gives me the power of the programming language capabilities. A nice approach are the keyword driven frameworks like Fit/FitNesse or the Robot Framework. They support GUI testing with the help of additional libraries, but can be used for any kind of module or acceptance testing.&lt;br /&gt;&lt;br /&gt;4. Continuous Integration (CI)&lt;br /&gt;This factor becomes more and more important with the XP and Scrum practices gaining greater popularity among the IT community. Having your tests executed daily over and over again is a wonderful opportunity to control the progress of the development process. Immediate feedback is the key word. You are always aware of the state your software is. You don't need to wait for the testing phase of the project. Your CI does the testing every day. &lt;br /&gt;&lt;br /&gt;There are certainly other factors which are important for making a decision which framework should be used. I listed the ones that make the most sense for me. Considering this list I would recommend tools like Fit/FitNesse, Selenium, Robot Framework, nUnit, since they provide great was to achieve modularization, they are easy to integrate into CI and you can test a variety of application scenarios with them. I would recommend to avoid using QuickTest or WinTest, since they are difficult to maintain and the CI integration is hard if possible at all.&lt;br /&gt;&lt;br /&gt;I am very much interested to know what experiences you have made with test frameworks and what factors are important in your project context for choosing one framework or the other.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Vladimir&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-34330001923974700?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/34330001923974700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=34330001923974700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/34330001923974700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/34330001923974700'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2009/04/choosing-test-framework.html' title='Choosing a Test Framework'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-7880333133517291730</id><published>2009-03-02T14:53:00.000-08:00</published><updated>2009-03-02T15:27:10.922-08:00</updated><title type='text'>The networking madness (Blogs, Facebook, Skype...)</title><content type='html'>It's all around us. Everyone is doing it. Networking, blogging, chatting. Don't you have the feeling that it is like television. You are doing it with the clear realization that you are wasting your time. &lt;br /&gt;&lt;br /&gt;We are so focused on being up to date all the time, we have forgotten how normal people used to have fun back in the days. Listening to rock music, drinking beers with friends and enjoying the good weather. What I used to do years ago to prevent myself from watching television was to put the TV-cable  on top of the wardrobe, far away from me so that the effort to get it and fix it on the TV would be so big that it wouldn't be worth it. It is kinda hard to do the same thing nowadays. Having W-LAN totally eliminates the need of a cable to connect yourself to the online jungle. Even your mobile is spitting out bytes on the top of the 3000 meters high peak that you are climbing during your summer vacation. Of course this is the perfect moment to start taking pictures with your 5-megapixel phone camera. You are uploading them instantly to your blog for every one of your friends to see, thus totally forgetting to enjoy and memorize the magnificent panorama.&lt;br /&gt;&lt;br /&gt;How many of you have spent New Year's Eve in taking pictures of the fireworks rather than hugging and kissing your family and friends? It's the same high-tech madness. Stop it! You don't really need it. You just think you do. You DON'T. &lt;br /&gt;&lt;br /&gt;What you REALLY need is to relax. Have a beer. Have a walk. Don't throw away your mobile or your laptop though. We don't wanna be so radical. After all, they are what your earn your money with. Just leave them tonight and go out. You might get surprised how fun old-school time-spending can be.&lt;br /&gt;&lt;br /&gt;I will not ask you to join the Facebook cause "Stop the networking madness". I will just stop right now not wasting your free time anymore. It is precious.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-7880333133517291730?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/7880333133517291730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=7880333133517291730' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7880333133517291730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7880333133517291730'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2009/03/networking-madness-blogs-facebook-skype.html' title='The networking madness (Blogs, Facebook, Skype...)'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-2578791947805292871</id><published>2008-11-01T11:50:00.001-07:00</published><updated>2008-11-03T11:54:13.857-08:00</updated><title type='text'>Suite Setup for Selenium (or JUnit) tests</title><content type='html'>In my current project we decided to use Selenium as the framework for integration testing. We develop a web application and Selenium is a widely used tool in the industry so it seemed to be a natural choice. My team are Java developers so having the possibility to write our tests in Java was for us a major benefit of Selenium.&lt;br /&gt;&lt;br /&gt;We started by simply inheriting the SeleneseTestCase class provided by the Selenium Client library. It is basically a JUnit test with some helpful methods in it. We also decided to start the Selenium server from within our Unit tests. We did it in the setUp method. After the Selenium server is started naturally we also start the Selenium client, which is an instance of the class DefaultSelenium.&lt;br /&gt;&lt;br /&gt;Very soon we developed around 20 tests which is not much but enough to reach an execution time that was just too long. This happened because we needed to start the the Selenium server and the Selenium client (including web browser) before each test. This was just painful and something needed to be done.&lt;br /&gt;&lt;br /&gt;I had the idea of using suite setup and teardown methods. Since these methods are not naturally provided by JUnit, we needed to implement them ourselves. Just for understanding, what I mean by suite setup or teardown are methods that are executed only once for ALL tests. Whatever number of tests you have started, the suite setup will be executed only before the first test and the suite teardown only after the last one. We wanted to start the Selenium server and client in the suite setup and close them in the suite teardown. We did this letting our testcase classes inherit the following class:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;package de.allianz;&lt;br /&gt;&lt;br /&gt;import com.thoughtworks.selenium.SeleneseTestCase;&lt;br /&gt;&lt;br /&gt;public abstract class RootTest extends SeleneseTestCase {&lt;br /&gt;   private static boolean start = true;&lt;br /&gt;   private static int countAllTests = 0;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;   public abstract void suiteSetUp() throws Exception;&lt;br /&gt;   public abstract void suiteTearDown() throws Exception;&lt;br /&gt; &lt;br /&gt;   public void setUp() throws Exception {&lt;br /&gt;      if(start){&lt;br /&gt;         start = false;&lt;br /&gt;         suiteSetUp();&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;   @Override&lt;br /&gt;   public void setName(String arg0) {&lt;br /&gt;      countAllTests++;&lt;br /&gt;      super.setName(arg0);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void tearDown() throws Exception {&lt;br /&gt;      countAllTests--;&lt;br /&gt;      if(countAllTests == 0){&lt;br /&gt;         suiteTearDown();&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;One can then implement the suiteSetUp and suiteTearDown methods in the subclasses.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;class MyTest extends RootTest {&lt;br /&gt;   public void suiteSetUp(){&lt;br /&gt;      // start Selenium server&lt;br /&gt;      // start Selenium client and browser&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void suiteTearDown(){&lt;br /&gt;      // stop Selenium client and browser&lt;br /&gt;      // stop Selenium server&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void setUp(){&lt;br /&gt;      // your normal test setup&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void tearDown(){&lt;br /&gt;      // your normal test teardown&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   public void testSomethig(){&lt;br /&gt;      // test webapp&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The RootTest class can be used also out of the Selenium context. It is also for all those that simply use JUnit as a test tool for integration or module tests.&lt;br /&gt;&lt;br /&gt;By having suite setup and teardown we decreased the execution time of our test set by a significant factor. This is also important because a long execution time is often a reason for the developers NOT to run the tests when they SHOULD. So now we can write Selenium tests just as unit tests and be fast at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-2578791947805292871?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/2578791947805292871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=2578791947805292871' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2578791947805292871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2578791947805292871'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2008/11/suite-setup-for-selenium-or-junit-tests.html' title='Suite Setup for Selenium (or JUnit) tests'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-2134713389532816019</id><published>2008-10-25T02:35:00.001-07:00</published><updated>2008-11-02T04:17:10.277-08:00</updated><title type='text'>Remote Pair Programming</title><content type='html'>I am a big fan of Pair Programming and a strong believer of the benefits it has for both the participants in the process and for the quality of the software that is being produced.&lt;br /&gt;&lt;br /&gt;Just recently I experienced a great way of doing remote pair programming over the internet. My brother is working on a project at the university and wanted to consult with me so we both started Skype and started talking. In the meantime we decided to use the program &lt;a href="http://www.teamviewer.com"&gt;Team Viewer&lt;/a&gt; to share his desktop. It worked just great. I was using TeamViewer to write code on his laptop and we were discussing over Skype. Two hours went by pretty fast.&lt;br /&gt;&lt;br /&gt;Both Skype and TeamViewer are quite reliable. Skype is already a well established product with a large user base. The benefit of TeamViewer is that it doesn't need any special configuration (the freeware version) when it comes to things like private ip's and NAT. You just share a generated ID and a password with your partner and he is able to log on to your machine. Really simple. &lt;br /&gt;&lt;br /&gt;And totally free :-)&lt;br /&gt;&lt;br /&gt;It would be interesting to see how it can work in real distributed teams!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-2134713389532816019?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/2134713389532816019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=2134713389532816019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2134713389532816019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2134713389532816019'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2008/10/pair-programming-over-internet.html' title='Remote Pair Programming'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-9151048890621201384</id><published>2008-10-14T13:34:00.000-07:00</published><updated>2008-10-27T14:22:52.166-07:00</updated><title type='text'>Move Subversion Repository from Windows to Linux</title><content type='html'>Recently I had to move my local SVN repository from the filesystem of my notebook (Windows) to my home server (Linux). I tried by simply copying the content of the repository folder. It didn't quite work the way I planned it. I got some incompatibility error because of the different operating system.&lt;br /&gt;&lt;br /&gt;Then I tried using a dump file and it worked great. I would like to recommend it to you in this post. Here are the steps I did:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;svnadmin dump repository_dir &amp;gt; repository.dmp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then after copying repository.dmp on the Linux machine:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;svnadmin create repository_dir&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;svnadmin load repository_dir &amp;lt; repository.dmp&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It will work only if on both systems the version of svn is the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-9151048890621201384?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/9151048890621201384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=9151048890621201384' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/9151048890621201384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/9151048890621201384'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2008/10/move-subversion-repository.html' title='Move Subversion Repository from Windows to Linux'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-844898857420147742</id><published>2008-08-12T13:01:00.000-07:00</published><updated>2008-10-27T14:22:52.167-07:00</updated><title type='text'>Integrate Tomcat with Apache Http Server</title><content type='html'>Very often you don't have the opportunity to use two separate servers: one for your static web content and one for your business logic applications. Integrating Tomcat with an Apache Http Server provides a solution to this problem. You can run both servers on a single machine and be able to deploy both static and dynamic content .&lt;br /&gt;&lt;br /&gt;Let's look at the steps you need to take to configure the wished setup:&lt;br /&gt;&lt;br /&gt;1. First you need to install libapache2-mod-jk on your linux machine. On Ubuntu you can either use the Synaptic Package Manager or &lt;code&gt;apt-get&lt;/code&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;apt-get install libapache2-mod-jk&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Now let's configure Apache to use the Tomcat connector we just installed. In &lt;code&gt;/etc/apache2/mods-available&lt;/code&gt; you can find the jk.load file. This is the configuration file for the Tomcat connector. To enable the jk module you need to enter in the file at least the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so&lt;br /&gt;&lt;br /&gt;JkWorkersFile /etc/apache2/workers.properties&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. The LoadModule directive enables the Tomcat connector and the JkWorkersFile points to the location of a workers.properties file. This file tells the mod_jk how to connect to Tomcat. It contains information like hostname, port, worker type, etc.: (workers.properties)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;worker.list=worker1&lt;br /&gt;worker.worker1.type=ajp13&lt;br /&gt;worker.worker1.host=localhost&lt;br /&gt;worker.worker1.port=8009&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. At last we need to tell the mod_jk which requests will be mapped to the Tomcat service and will be processed by it. We do this again in the jk.load file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;JkMount /* worker1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I use the JkMount directive to map all requests to the Tomcat service but you map only jps requests if you wish:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;JkMount /*.jsp worker1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Both Apache2 and Tomcat should be started for the setup to work.&lt;br /&gt;&lt;br /&gt;That's about it. I am deliberately not going into any details about installing Apache2 and Tomcat since there is sufficient information about this in the net. Comments on this very short manual are welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-844898857420147742?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/844898857420147742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=844898857420147742' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/844898857420147742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/844898857420147742'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2008/08/integrate-tomcat-with-apache-http.html' title='Integrate Tomcat with Apache Http Server'/><author><name>Vladi Manolov</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://1.bp.blogspot.com/_7tS6_5u4Q74/SKVmngsv3_I/AAAAAAAAAAM/FM_YQz_eh04/S220/IMG_0001+Kopie.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-7329462331989524356</id><published>2008-08-04T12:57:00.000-07:00</published><updated>2008-10-27T14:22:52.167-07:00</updated><title type='text'>Setup your own Subversion Server</title><content type='html'>Recently I tried to setup my own Subversion server where I can keep stuff I am currently working on. Before actually configuring everything on my real server I used an Ubuntu installation running on a virtual machine on my private PC to try out the setup steps. I would like to share them with you in case you want to have our own Subversion repository online.&lt;br /&gt;&lt;br /&gt;I will not go into details on how to install Apache2 on Ubuntu, since it is either installed per default or it is really simple to do it. Please refer to the Apache documentation if you don't have Apache2 installed yet.&lt;br /&gt;&lt;br /&gt;After installing Apache2, you will need to install Subversion (wow, what a surprise). Anyway, to do that just use apt-get:&lt;br /&gt;&lt;code&gt;apt-get install subversion&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can verify that the installation worked by typing:&lt;br /&gt;&lt;code&gt;svn --version&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now let's make a sample repository that we will access later over http:&lt;br /&gt;&lt;code&gt;svnadmin create /home/manolov/repository&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Do not forget to set the appropriate access rights for the repository directory for the Apache user. The Apache user should be able to write into the repository.&lt;br /&gt;&lt;br /&gt;We can import any folder or file into the repository by using:&lt;br /&gt;&lt;code&gt;svn import testdir file:///home/manolov/repository/testdir&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now we are ready to configure Apache2 to use the created repository. First we will need to install a Subversion module for Apache2:&lt;br /&gt;&lt;code&gt;apt-get install libapache2-svn&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We need to enable and configure the SVN module. Open the file /etc/apache2/mods-available/dav_svn.conf and make sure the following parameters are set properly:&lt;br /&gt;&lt;code&gt;...&lt;br /&gt;&amp;lt;Location /svn&amp;gt;&lt;br /&gt;...&lt;br /&gt;DAV svn&lt;br /&gt;..&lt;br /&gt;SVNPath /home/manolov/repository&lt;br /&gt;...&lt;br /&gt;AuthType Basic&lt;br /&gt;AuthName "Subversion Repository"&lt;br /&gt;AuthUserFile /home/manolov/repository/conf/passwd&lt;br /&gt;&lt;br /&gt;&amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;&lt;br /&gt;Require valid-user&lt;br /&gt;&amp;lt;/LimitExcept&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next we need to create a user who will be able to commit changes to the repository:&lt;br /&gt;&lt;code&gt;htpasswd -cm /home/manolov/repository/conf/passwd manolov&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;All it is left to do now is to reload the Apache2 service by executing:&lt;br /&gt;&lt;code&gt;/etc/init.d/apache2 reload&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now you should be able to access your repository using the URL &lt;code&gt;http://&amp;lt;yourservername&amp;gt;/svn&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I hope this short manual helps. I don't claim any completeness but I am sure it can get you started. Good luck :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-7329462331989524356?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/7329462331989524356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=7329462331989524356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7329462331989524356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/7329462331989524356'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2008/08/setup-your-own-subversion-server.html' title='Setup your own Subversion Server'/><author><name>Vladimir Manolov</name><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-22970272.post-1152746403668131670</id><published>2007-11-02T12:36:00.000-07:00</published><updated>2008-10-27T14:23:15.055-07:00</updated><title type='text'>Split user stories</title><content type='html'>Recently I took part in a sprint planning session which got me thinking about one thing: why do people insist on splitting a user story into components rather than splitting it into smaller user stories which are still of some value to the customer.&lt;br /&gt;&lt;br /&gt;The success and failure of a team is measured on whether the team is able to deliver value every iteration. Business value is obtained only from completed user stories: only they matter to the customer. The customer does not want to know any technical details. He needs to know what features are supported by the software.&lt;br /&gt;&lt;br /&gt;People often tend to split a user story into work items related to the different components of the system: I will do this component this iteration and do the next component the next iteration. The product owner doesn't really know how far the team is until the whole feature gets implemented (all components are done). It is really hard for him to trace progress this way, since it takes X iterations to complete the whole user story and she doesn't know anything about the status until the end.&lt;br /&gt;&lt;br /&gt;This doesn't really need to be like this. It would be easier for the product owner if the team could do only part of the user story but end-to-end:&lt;br /&gt;&lt;br /&gt;Say I have web library. My user story is: as an admin I want to be able to add books to the library. I will not implement the fully functional GUI, the business layer and the DB layer all at once. I will make a simplistic GUI, just enough business logic and just enough DB code so that I can add a book to the web library. I can add security, concurrency management and other stuff later as another part of the user story (As an admin I want to add books through a secured connection).&lt;br /&gt;&lt;br /&gt;Of course this is just a simplistic example. But the idea behind it is really important. By splitting a user story into smaller end-to-end stories you can measure progress every iteration by the business value delivered by the team. It becomes transparent to everyone at the end of the sprint where you are.&lt;br /&gt;&lt;br /&gt;There is also another very important aspect of this idea. By splitting a user story into smaller ones you give your product owner the possibility to decide whether the business value obtained by some smaller user story is really worth the effort. He wouldn't need maybe to add books through a secured connection. But if you implemented the components separately you most probably would have designed your code to handle the secured case. So it is about enabling your product owner to make the important decisions about the content of the software. &lt;br /&gt;&lt;br /&gt;In terms of testing having end to end user stories every iteration is really great. You can write the acceptance test at the beginning of the iteration and if at the end the test is green, you are Done. If not... it is seen by everyone, it is transparent and actions can be taken correspondingly to avoid that in the next sprint. So you are able to adapt much faster: only after one iteration.&lt;br /&gt;&lt;br /&gt;To some of you it might look obvious how to split user stories, but it seems that thinking in components is easier for people. It is relatively easy to realize why. My guess is that people tend to imagine themselves the code that needs to be changed: they engineer and plan at the same time. During the planning session we should try to focus on the customer perspective and give priority to business value over engineering details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-1152746403668131670?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/1152746403668131670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=1152746403668131670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/1152746403668131670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/1152746403668131670'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2007/11/split-user-stories.html' title='Split user stories'/><author><name>Vladimir Manolov</name><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-22970272.post-2182050994850107308</id><published>2007-10-26T15:58:00.000-07:00</published><updated>2008-10-27T14:23:08.339-07:00</updated><title type='text'>Berlin Fabulous</title><content type='html'>On my last trip to Berlin I was "fascinated" by the city's glamor. Typical example of that could be found right in front of the new Central Train Station. I will let the picture speak for itself:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_OaSYp-8lCpk/RyJxrYEVY8I/AAAAAAAAAAM/OVx-suX6Okk/s1600-h/100_1991.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_OaSYp-8lCpk/RyJxrYEVY8I/AAAAAAAAAAM/OVx-suX6Okk/s320/100_1991.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5125784315909989314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After seeing this I guess all people from Sofia can relax. It seems Sofia is not that bad after all. Of course in Berlin pictures like the one above are rather an exception than a common view. We can't say the same for Sofia and Bulgarian cities altogether. We keep dreaming...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-2182050994850107308?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/2182050994850107308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=2182050994850107308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2182050994850107308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/2182050994850107308'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2007/10/berlin-fabulous.html' title='Berlin Fabulous'/><author><name>Vladimir Manolov</name><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://bp2.blogger.com/_OaSYp-8lCpk/RyJxrYEVY8I/AAAAAAAAAAM/OVx-suX6Okk/s72-c/100_1991.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-116865078389773260</id><published>2007-01-12T16:38:00.000-08:00</published><updated>2008-10-27T14:23:15.058-07:00</updated><title type='text'>Human vs. email communication</title><content type='html'>I would like to share with you why one should not prefer email instead of normal human communication. I have gathered some experience in that matter in my work life that I would like to share with you.&lt;br /&gt;&lt;br /&gt;I know that many of us enjoy the great opportunities for communication that internet gives us today. Email is one of them. It is broadly used on the job as a tool for internal company communication. It is fast, it is reliable and you can express what you have to say in a quite accessible way either through some plain text or supporting your writing with pictures.&lt;br /&gt;&lt;br /&gt;Well, this is really fine, but sometimes email is being misused. To my impression people often tend to delegate responsibility by writing emails. If you send an email to someone saying that he is responsible for something or notifying him of some information doesn't really mean that you have done what was needed from you. Your personal engagement requires you to make sure that the issue that needs that person's attention is really taken care of. It is much better to approach that person personally face to face or on the phone. Thus you can avoid possible endless discussions about who should be responsible for the issue at hand. You also build trust in the relationship with that person, since talking to him directly is an open act of respect and honesty.&lt;br /&gt;&lt;br /&gt;A common misuse of email is using it for leading long discussions involving several people. This is a nightmare scenario to me. A scenario that often leads to a dead end with no solution on the discussed matter. I would strongly recommend getting all people who are involved together in a room. Approaching the participants in a friendly manner and letting everyone to put his point on the table ensures a healthy discussion often leading to a fast and a much better decision. After such a discussion nobody feels unheard but appreciated and valuable for the others. It also saves a great amount of time by reducing the feedback time from the others and by avoiding misunderstandings.&lt;br /&gt;&lt;br /&gt;I strongly recommend using human communication over email in every possible case. Why to work and live in a silo? Why not use the most easiest and natural form of talking to others? Why to hide in our little computer world being afraid to focus on the real things? Because it is easy to do so! It is up to you to realize what is better. I have made my choice and although I find it really hard I try to choose talking over writing emails as much as possible. I thinks it pays out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-116865078389773260?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/116865078389773260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=116865078389773260' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/116865078389773260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/116865078389773260'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2007/01/human-vs-email-communication.html' title='Human vs. email communication'/><author><name>Vladimir Manolov</name><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-22970272.post-116380318694865580</id><published>2006-11-17T14:22:00.000-08:00</published><updated>2008-10-27T14:23:15.059-07:00</updated><title type='text'>Software Development Books</title><content type='html'>I haven't written anything for quite some time and now I have decided to capture your interest again (a desperate attempt from my side) by recommending two good readings about software development.&lt;br /&gt;&lt;br /&gt;The first one is called "&lt;a href="http://www.amazon.de/Extreme-Programming-Explained-Embrace-Change/dp/product-description/0321278658"&gt;Extreme Programming Explained - Embrace Change&lt;/a&gt;" by the XP guru Kent Beck. As the name suggests, the book is a description of the principles of Extreme Programming (XP). It is a book that can help you recognize what is going wrong in a software project and how things can be improved by introducing some simple but efficient practices in the development lifecycle. Of course, this is a really simplistic explanation. The book is so much more than what I have said here. You just need to read it yourself :-)&lt;br /&gt;&lt;br /&gt;A second reading I would really like to recommend to any programmer is "&lt;a href="http://www.amazon.de/Refactoring-Improving-Design-Existing-Code/dp/0201485672"&gt;Refactoring - Improving the Design of Existing Code&lt;/a&gt;" by Martin Fowler. This book is simply a must for anyone who is striving to make his code has a better quality in terms readibility, maintainability, reusability, etc.  It is a book that you should always have on your desk while programming, so that you can always get a good advice from it if you have difficulties writing clean code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-116380318694865580?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/116380318694865580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=116380318694865580' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/116380318694865580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/116380318694865580'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/11/software-development-books.html' title='Software Development Books'/><author><name>Vladimir Manolov</name><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-22970272.post-115334398761909011</id><published>2006-07-19T14:19:00.001-07:00</published><updated>2008-10-27T14:23:08.340-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/hello/144/11102/640/14_07_06%20225.0.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/hello/144/11102/400/14_07_06%20225.0.jpg'&gt;&lt;/a&gt;&lt;br /&gt;WestBam at the LoveParade&lt;br /&gt;&lt;span style='font-size: 8pt;'&gt;Posted by Vladi&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-115334398761909011?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/115334398761909011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=115334398761909011' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/115334398761909011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/115334398761909011'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/07/westbam-at-loveparadeposted-by-vladi_19.html' title=''/><author><name>Vladimir Manolov</name><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-22970272.post-115334395687242982</id><published>2006-07-19T14:19:00.000-07:00</published><updated>2008-10-27T14:23:08.340-07:00</updated><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/hello/144/11102/640/14_07_06%20209.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/hello/144/11102/400/14_07_06%20209.jpg'&gt;&lt;/a&gt;&lt;br /&gt;Love Parade, Berlin, 2006... yeah baby&lt;br /&gt;&lt;span style='font-size: 8pt;'&gt;Posted by Vladi&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-115334395687242982?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/115334395687242982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=115334395687242982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/115334395687242982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/115334395687242982'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/07/love-parade-berlin-2006.html' title=''/><author><name>Vladimir Manolov</name><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-22970272.post-114443888987874408</id><published>2006-04-07T12:32:00.000-07:00</published><updated>2008-10-27T14:23:15.060-07:00</updated><title type='text'>Test Driven Development 2</title><content type='html'>A very nice reading on TDD and agile practices is the book "Essential Skills for Agile Development". It contains numerous exercises. Feel free to download it from &lt;a href="http://agileskills.org/"&gt;http://agileskills.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A nice web site holding info about TDD is &lt;a href="http://c2.com/"&gt;http://c2.com/&lt;/a&gt;&lt;br /&gt;Browse through the Wiki pages to know more about various refactoring skills, Extreme Programming, Continuous Integration and other fancy words related to TDD and Agile.&lt;br /&gt;&lt;br /&gt;... This post makes me sound really important. But, of course, I am just playing with you. Keep it real :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-114443888987874408?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/114443888987874408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=114443888987874408' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114443888987874408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114443888987874408'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/04/test-driven-development-2.html' title='Test Driven Development 2'/><author><name>Vladimir Manolov</name><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-22970272.post-114255190065577331</id><published>2006-03-16T15:31:00.000-08:00</published><updated>2008-10-27T14:23:15.060-07:00</updated><title type='text'>Test Driven Development</title><content type='html'>For those of you who are interested in TDD, you can checkout the book "Test Driven Development" by Kent Beck. Very nice reading! TDD is an essential part of the agile development process. It also is a great way to achieve code with high quality which is easy to maintain :)&lt;br /&gt;&lt;br /&gt;Related terminology: TDD, Agile Development, Scrum Processes, JUnit, Mock Objects&lt;br /&gt;&lt;br /&gt;If you google for one of the above you should be able to get into the whole TDD concept&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-114255190065577331?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/114255190065577331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=114255190065577331' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114255190065577331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114255190065577331'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/03/test-driven-development.html' title='Test Driven Development'/><author><name>Vladimir Manolov</name><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-22970272.post-114081441819627817</id><published>2006-02-24T12:27:00.000-08:00</published><updated>2008-10-27T14:23:08.341-07:00</updated><title type='text'>Siemens Communications Academic Award</title><content type='html'>Well, at least part of the hard work at the university pays off. Thanks to the great supervision of Prof. Jung and Dr. Bruck I was able to receive the "Siemens Communications Academic Award" for best Master thesis. Many thanks to all involved for the support!&lt;br /&gt;&lt;br /&gt;PS: To my friends: Sorry for bothering you so much with showing you the results of my work all the time :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/2917/2345/1600/receiving_award_small.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2917/2345/320/receiving_award_small.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-114081441819627817?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vladi-blog.blogspot.com/feeds/114081441819627817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22970272&amp;postID=114081441819627817' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114081441819627817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114081441819627817'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/02/siemens-communications-academic-award.html' title='Siemens Communications Academic Award'/><author><name>Vladimir Manolov</name><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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22970272.post-114080982158929580</id><published>2006-02-24T00:30:00.000-08:00</published><updated>2008-10-27T14:23:08.342-07:00</updated><title type='text'>Vladi's Blog</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;Well... as you see I also joined those who think of themselves as really important and create blogs to share the nonsense they have in their heads with others, who have nothing better to do than browsing through the internet.&lt;br /&gt;&lt;br /&gt;So... here is my blog. Go nuts!&lt;br /&gt;&lt;br /&gt;Vladi :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22970272-114080982158929580?l=vladi-blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114080982158929580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22970272/posts/default/114080982158929580'/><link rel='alternate' type='text/html' href='http://vladi-blog.blogspot.com/2006/02/vladis-blog.html' title='Vladi&apos;s Blog'/><author><name>Vladimir Manolov</name><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></entry></feed>
