<?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-18635615</id><updated>2011-11-01T22:21:49.140+01:00</updated><category term='ruby'/><category term='webwork'/><category term='grails'/><category term='photo'/><category term='css'/><category term='struts'/><category term='java'/><category term='groovy'/><category term='web'/><category term='mac'/><category term='web2expoberlin'/><category term='ror'/><category term='intellij'/><category term='web2expoberlin opensocial facebook'/><category term='jetbrains'/><title type='text'>Michal Szklanowski Blog</title><subtitle type='html'>Java and more...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18635615.post-4749459475798178389</id><published>2010-06-09T08:41:00.009+02:00</published><updated>2010-06-09T09:11:50.261+02:00</updated><title type='text'>Safari 5.0 - few steps towards a usable browser</title><content type='html'>I must say I was never really a fan of Safari. The browser was well integrated with Mac OS X, very fast (it's probably the fastest browser on the planet), but somehow it never felt right. There were a lot of little glitches that made the overall experience a pain: weird, hard to remember keyboard shortcuts, ugly modal dialog windows (both  Javascript alerts and Download window), lack of intelligent autocompletion in address field etc.&lt;br /&gt;&lt;br /&gt;With the version 5.0 - released yesterday - Apple has made few steps into the right direction, in making overall browsing experience a pleasure. &lt;br /&gt;&lt;br /&gt;1. Safari Reader. Conceptually based on the &lt;a href="http://lab.arc90.com/experiments/readability/"&gt;Readability bookmarklet&lt;/a&gt; (it's even mentioned in Safari acknowledgments) - reader brings book-style reading experience to web pages. It renders the main article on the page without all distractions such as side frames, animated banners and so on. And it is intelligent enough to stitch multiple article pages together, for even more pleasurable reading. It sometime does mistakes e.g. if the article starts with the image, the image is not included. But it is anyway a big step forward for those that read longer texts on the web. I'm one of these. This feature alone could eventually win me over to use Safari over Chrome. Btw. - does anyone know a keyboard shortcut that turns Safari Reader on?&lt;br /&gt;&lt;br /&gt;2. Generally improved performance - thanks to further Javascript performance improvements and DNS prefetching browser is a lot snappier than 4.0 version. There is no visible difference between Safari 5.0 and Chrome 5.0 anymore.&lt;br /&gt;&lt;br /&gt;3. Smart opening new pages in new tab instead of new window. This was a must, but it never really got a priority in Apple pipeline, until now. Feature is smart enough to recognize those small popup web applications sometimes open and still allows them to open in a new window, but for most of the cases it opens page in a new tab instead. &lt;br /&gt;&lt;br /&gt;4. Auto-completion in address bar. Safari used to suck badly on that. All the other browsers had that feature since some time. Now - Safari has it as well. It searches for partial match in the whole url, based on what you type, including page history and bookmarks. When the match appears in address bar - Safari shows also page title that follows the url. Unfortunately on Safari for Windows page title is drawn with dark blue font on black background, making it almost completely unreadable.&lt;br /&gt;&lt;br /&gt;5. Downgrade of page progress indicator to Safari 3.x version. No one really noticed it in the reviews, but page loading indicator has been rolled-back to the indicator present in Safari 3.x. And this is for good. I hated the progress indicator in version 4.0 that didn't really showed any progress apart from showing itself. Blue indicator shows the page loading progress and doesn't occupy any additional space on the browser real estate.&lt;br /&gt;&lt;br /&gt;The list above is by no means meant to be comprehensive. Refer to the &lt;a href="http://support.apple.com/kb/DL1046"&gt;release notes&lt;/a&gt; for the complete list of new features.&lt;br /&gt;&lt;br /&gt;There still some rough edges in Safari 5 like ugly modal Javascript alerts - blocking all tabs, but overall this release brought a lot of usability and user experience improvements, despite some raw speed enhancements in a never-ending browser race. Now it's Chrome's turn :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-4749459475798178389?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/4749459475798178389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=4749459475798178389' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/4749459475798178389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/4749459475798178389'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2010/06/safari-50-few-steps-toward-usable.html' title='Safari 5.0 - few steps towards a usable browser'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-1053579550147509926</id><published>2009-02-26T21:49:00.011+01:00</published><updated>2009-04-24T16:09:17.820+02:00</updated><title type='text'>CHINETIK</title><content type='html'>One day you leave your office, your mind still buried in the recent project challenges. You walk through the park, checking latest messages on your handy, passing by giant rusty metal ball, leasing on the ships' anchor...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SEC, WHAT??&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_WeT78nlw528/SacCgCPKFgI/AAAAAAAADL8/KlePMbjAojY/s1600-h/25022009%28000%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_WeT78nlw528/SacCgCPKFgI/AAAAAAAADL8/KlePMbjAojY/s320/25022009%28000%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307213435258934786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Excited, you step in, through strangely looking portal, and you are moved to China. To a grotesque China, though. The overwhelming presence of the BIKE is filling quickly your mind. Brave visions appear one after another; having one BIKE for entire family?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/SacDzBqxDNI/AAAAAAAADME/LCf8PkyJIIo/s1600-h/25022009%28004%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_WeT78nlw528/SacDzBqxDNI/AAAAAAAADME/LCf8PkyJIIo/s320/25022009%28004%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307214861035441362" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;What about having the all the gold you earned through these years always with you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/SacEHv0rCmI/AAAAAAAADMM/VYDHk3qKyZU/s1600-h/25022009%28006%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_WeT78nlw528/SacEHv0rCmI/AAAAAAAADMM/VYDHk3qKyZU/s320/25022009%28006%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307215217022405218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having your house BIKE with you, and caring your house everywhere with you?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_WeT78nlw528/SacEH-tosiI/AAAAAAAADMU/9VhgFuG5YAg/s1600-h/25022009%28007%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_WeT78nlw528/SacEH-tosiI/AAAAAAAADMU/9VhgFuG5YAg/s320/25022009%28007%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307215221019423266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During the lunch time you would use lunch BIKE with all kitchenware you are used to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/SacEHyLWZwI/AAAAAAAADMc/qTbHKDLje08/s1600-h/25022009%28008%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_WeT78nlw528/SacEHyLWZwI/AAAAAAAADMc/qTbHKDLje08/s320/25022009%28008%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307215217654392578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And even have a separate picnic BIKE, when there is time for picnic:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_WeT78nlw528/SacEIOKQevI/AAAAAAAADMk/SY1ce2yNWYM/s1600-h/25022009%28009%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_WeT78nlw528/SacEIOKQevI/AAAAAAAADMk/SY1ce2yNWYM/s320/25022009%28009%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307215225166002930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You're stuck somewhere between CHINA and TIK, moaning and screaming: HELP, HELP! Too much noise! Too much noise you cause in this sterile, artifical world. You find yourself escorted to the DEAD REFEREES.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_WeT78nlw528/SacG00MMLWI/AAAAAAAADMs/lVOM4mp4gUA/s1600-h/25022009%28013%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_WeT78nlw528/SacG00MMLWI/AAAAAAAADMs/lVOM4mp4gUA/s320/25022009%28013%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307218190312156514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They look at you making your blood run cold. Being dragged in front of jury you already know what will be the verdict: GUILTY!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/SacH3SL809I/AAAAAAAADM0/R7ShIfjV41o/s1600-h/25022009%28014%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_WeT78nlw528/SacH3SL809I/AAAAAAAADM0/R7ShIfjV41o/s320/25022009%28014%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307219332235580370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You tremble, waiting for the unavoidable: PUNISHMENT. In the dark minds of the referees there is only one possible punishment: STEAL MONSTER&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_WeT78nlw528/SacIsLZoLTI/AAAAAAAADM8/1JLUeV2VTCY/s1600-h/25022009%28015%29.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_WeT78nlw528/SacIsLZoLTI/AAAAAAAADM8/1JLUeV2VTCY/s320/25022009%28015%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5307220240946965810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Before your bones are crushed your last question is what would happen if you haven't crossed this strange portal at the very beginning...?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, you would be already at home. So how dangerous can be a visit in a &lt;a href="http://www.tinguely.ch/en/index.html"&gt;Tinguely  Museum&lt;/a&gt;, Basel? Try it, if you are brave enough...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-1053579550147509926?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/1053579550147509926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=1053579550147509926' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/1053579550147509926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/1053579550147509926'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2009/02/chinetik.html' title='CHINETIK'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_WeT78nlw528/SacCgCPKFgI/AAAAAAAADL8/KlePMbjAojY/s72-c/25022009%28000%29.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-1084794410413873683</id><published>2008-06-04T23:31:00.002+02:00</published><updated>2008-06-04T23:43:43.071+02:00</updated><title type='text'>Atlassian User Group meeting in Zurich</title><content type='html'>I've been recently to the Atlassian User Group meeting held in Zurich. Such meetings allow Atlassian customers to talk directly to the vendor, and also exchange ideas and experience with using Atlassian products. So with no surprise I saw there many representatives from major Swiss companies like Swisscom, Raffeisen, and many smaller software/consulting companies which base their business on JIRA/Confluence.&lt;br /&gt;&lt;br /&gt;A couple of Atlassian guys were also present at the conference, doing few demos and answering questions about the products. From what I saw Atlassian is now strengthening integration between various products. A demo of &lt;a href="http://www.jira.com/"&gt;JIRA Hosted&lt;/a&gt; showed, that they work on tight integration between various products such as issue tracking (JIRA), wiki (Confluence), source code control (FishEye), peer-review (Crucible) and continous integration (Bamboo).  They claimed to have this integration layer available also for customers, that need to have everything installed behind company's firewall. Let's see...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then I learnt a bit about a future plans for JIRA / Confluence. JIRA is soon becoming even more powerful with shareable project dashboards and editable workflow (it is major hindrance now to change workflow, even a bit).  Confluence will see a final version of SharePoint connector in the finite time, and also some major redesign to the WYSIWYG editor (I wonder what they do to improve switching between Wiki markup and visual mode).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What is not certain for me, is what is the strategy behind Confluence. From how people use it I can see, that it is becoming de facto much more than a traditional wiki tool, with the custom macros/screens programmed by the internal developers in big companies. Still, the user interface is an issue for non-techie users, although Confluence 2.8 brings major overhaul to the default skin. So I'm looking forward to the next versions coming.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And last, but not least I met Jens Schumacher, Atlassian employee #14 - he was there from the very beginning when JIRA was at version 1.0 - probably.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Overall - a good event. Even with plenty of German-only presentations, which gave me a real headache.&lt;/div&gt;&lt;div&gt;&lt;br /&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/18635615-1084794410413873683?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/1084794410413873683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=1084794410413873683' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/1084794410413873683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/1084794410413873683'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2008/06/atlassian-user-group-meeting-in-zurich.html' title='Atlassian User Group meeting in Zurich'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-4578750575530247620</id><published>2007-11-07T10:24:00.000+01:00</published><updated>2007-11-08T10:02:13.253+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2expoberlin opensocial facebook'/><title type='text'>Web 2.0 Expo: Day 3</title><content type='html'>&lt;draft&gt;&lt;br /&gt;&lt;br /&gt;It was quite hard to wake up after the Web 2.0 official party - lots of interesting people met there.&lt;br /&gt;Getting back to conference, I watched the presentation about the &lt;a href="http://www.amazon.com/Web-2-0-Design-Patterns-entrepreneurs/dp/0596514433"&gt;Web 2.0 design patterns&lt;/a&gt;, from  &lt;a href="http://www.nickull.net/"&gt;Duane Nickull&lt;/a&gt; (Adobe).&lt;br /&gt;&lt;br /&gt;&lt;/draft&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_155953"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=web-20-design-patterns-models-and-analysis-1194273339280295-3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=web-20-design-patterns-models-and-analysis-1194273339280295-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/adunne/web-20-design-patterns-models-and-analysis" title="View 'Web 2.0 Design Patterns, Models and Analysis' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;It's actually quite hard to capture the commodities between various Web 2.0 apps, knowing the platform differences, architecture differences, and the concept differences. His book actually asks more questions, that answers it provides.&lt;br /&gt;&lt;br /&gt;Next one, entirely technical was How to make Ajax work for you.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_158052"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=how-to-make-ajax-libraries-work-for-you-1194431635286751-2"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=how-to-make-ajax-libraries-work-for-you-1194431635286751-2" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/simon/how-to-make-ajax-libraries-work-for-you" title="View 'How to make Ajax Libraries work for you' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;This is pretty amazing how many Javascript libraries have emerged, for solving common issues when dealing with Ajax-based development. I got assured that &lt;a href="http://dojotoolkit.org/"&gt;Dojo&lt;/a&gt;, despite its power is may lead to the dead-end, and &lt;a href="http://jquery.com/"&gt;jQuery &lt;/a&gt;now seems like a more reasonable approach.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_158392"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=better-typography-1194448571309611-4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=better-typography-1194448571309611-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/markboultondesign/better-typography" title="View 'Better Typography' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.markboulton.co.uk/"&gt;Mark Boulton&lt;/a&gt; on Typography design talk amazed me. So far I never watched a professional designer working, and there are so many things that need to be taken into account when you create professionally looking design.  Starting from the &lt;a href="http://en.wikipedia.org/wiki/Golden_ratio"&gt;golden ratio&lt;/a&gt; to divide the screen properly, ending with decision what type of dashes to use in the text.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_158485"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=techlightenment-berlin-expo-1194452689304999-3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=techlightenment-berlin-expo-1194452689304999-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/guestbda51b/techlightenment-berlin-expo" title="View 'Techlightenment Berlin Expo' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The next presentation: &lt;span style="font-style: italic;"&gt;Disrupting the Platform: Harnessing social analytics and other musings on the Facebook API&lt;/span&gt; should be rather called: &lt;span style="font-style: italic;"&gt;Singing the Praises of Facebook while ranting about OpenSocial&lt;/span&gt;. I respect that Facebook has chosen its own way and didn't joined OpenSocial, but giving the presentation about your product does not give you the rights to spread the rants about the other product. This is simply not funny. I hope that Facebook as a company behaves much more professional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-4578750575530247620?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/4578750575530247620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=4578750575530247620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/4578750575530247620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/4578750575530247620'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/11/web-20-expo-day-2_07.html' title='Web 2.0 Expo: Day 3'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-6037947715975519812</id><published>2007-11-06T10:34:00.000+01:00</published><updated>2007-11-11T21:04:13.542+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2expoberlin'/><title type='text'>Web 2.0 Expo: Day 2</title><content type='html'>I was hoping to hear the case study about the company, that transformed itself into the Web 2.0 leaderless organization. But it failed. Dunno why but often the panels discussions are just boring. So I left this one and attended the &lt;a href="http://microformats.org/"&gt;Microformats &lt;/a&gt;presentation instead. Very technical in nature,  but &lt;a href="http://suda.co.uk/"&gt;Brian Suda&lt;/a&gt; was really good presenter, and had interesting examples of &lt;a href="http://www.oreilly.com/catalog/microformats/index.html"&gt;using microformats in various apps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_158007"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=microformats-a-web-of-data-1194427689411123-3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=microformats-a-web-of-data-1194427689411123-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/guest897d73/microformats-a-web-of-data" title="View 'Microformats a Web of Data' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The next was the presentation about &lt;a href="http://en.wikipedia.org/wiki/Interaction_design"&gt;Interaction Design&lt;/a&gt;&lt;span&gt; by &lt;a href="http://www.dotgrex.com/"&gt;Gregor Hochmuth&lt;/a&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span&gt; There is a lot of clever ideas in this approach. The best probably being the fact, that users will eventually loved the product you made for them. They will love it not because of its features, but because it allows them to accomplish certain tasks more easily. Very inspiring.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_161361"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=interaction-design-for-fastpaced-startups-1194731880638665-2"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=interaction-design-for-fastpaced-startups-1194731880638665-2" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/grex/interaction-design-for-fastpaced-startups" title="View 'Interaction Design for fast-paced Startups' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Next one, talking about Developing for the Web of data, came from &lt;a href="http://www.plasticbag.org/"&gt;Tom Coates&lt;/a&gt;, Yahoo.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_156875"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=designing-for-a-web-of-data-1194347975136081-4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=designing-for-a-web-of-data-1194347975136081-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/adunne/designing-for-a-web-of-data" title="View 'Designing for a Web of Data' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;(beware - presentation is not the final one)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;He showed many examples, where data merged from different sources can be presented in the unified and useful way.&lt;br /&gt;&lt;br /&gt;In the afternoon, one interesting presentation I watched was about how the Web 2.0 concepts can be brought into the corporations.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_155951"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=blogs-social-networks-and-podcasts-corporate-communications-20-1194273309192040-4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=blogs-social-networks-and-podcasts-corporate-communications-20-1194273309192040-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/adunne/blogs-social-networks-and-podcasts-corporate-communications-20" title="View 'Blogs, Social Networks and Podcasts: Corporate Communications 2.0' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(beware this is old presentation I put here. I will update the link, when I find the new version on the slideshare)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;It turns out, that this is quite hard to enable social networks/communities in the traditional business such as &lt;a href="http://www.telekom.at/"&gt;Telekom Austria&lt;/a&gt;. What they achieved is public corporate blogs (also available in the Internet), and corporate wiki. But knowing the Web 2.0 revolution happening, it's still light years away. And it will be like this always, I'm pretty sure.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_159285"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=myheimat-webexpoberlin-tuesday-1194511354244201-4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=myheimat-webexpoberlin-tuesday-1194511354244201-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/guest08d4be/myheimat-webexpoberlin-tuesday" title="View 'Myheimat Webexpoberlin Tuesday' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Another presenter in this panel was talking about &lt;a href="http://myheimat.de/"&gt;myheimat.de&lt;/a&gt; initiative. They had a very active local community which drives the development of the social network by proposing enhancements etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-6037947715975519812?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/6037947715975519812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=6037947715975519812' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/6037947715975519812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/6037947715975519812'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/11/web-20-expo-day-2.html' title='Web 2.0 Expo: Day 2'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-8415587256799347774</id><published>2007-11-05T14:58:00.000+01:00</published><updated>2007-11-08T11:52:42.711+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2expoberlin'/><title type='text'>Web 2.0 Expo: Day 1</title><content type='html'>I was a bit late, because of my flight. So, with the croatian driver I managed to leave my luggage in the hotel and get into the Berlin Messe. Registration was rather quick, and I got into the real Expo.&lt;br /&gt;&lt;br /&gt;My first impression about expo was: disorganized. That's true. Certain things are in different/remote places, you need to walk in the dead-cold winds between the buildings, etc. The worse thing was that they were not prepared for the amount of people coming, and my lunch was a virtual one. I ended up buying a sandwich and a coffee in the cafeteria.&lt;br /&gt;&lt;br /&gt;Now to the speeches. Monday is a day of long 3 hour workshops. The morning one was the &lt;a href="http://www.stoweboyd.com/"&gt;Stowe Boyd's show&lt;/a&gt; about building social apps.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_155906"&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=building-social-applications-119427082538907-3"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=building-social-applications-119427082538907-3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/stoweboyd/building-social-applications-155906" title="View 'Building Social Applications' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;He showed with a good amount of humour the characteristics of good social apps, and pointed out the mistakes of the bad ones (yes, &lt;a href="http://www.basecamp.com/"&gt;Basecamp &lt;/a&gt;was on the shit list). One exercise I found particularly useful was the mini-workshop in groups, where we had to break down &lt;a href="http://www.dopplr.com/"&gt;Dopplr&lt;/a&gt; social app into pieces, and assess what are the missing elements in the puzzle to make it a successful Web 2.0 app. The outcome coming from different groups was quite interesting - on its own could contribute this this company 5-year business plan - 'coz there were there feature propositions, and potential business models explained :)&lt;br /&gt;&lt;br /&gt;Second talk (I'm just listening to it now) is Kathy Sierra talking about &lt;a href="http://headrush.typepad.com/"&gt;Creating Passionate Users&lt;/a&gt;.  One of the most compelling speeches I've ever heard. And it's totally not technology-oriented. It talks about how to engage users and create passion. You can use it to write an entertaining programming book, you can use it to create a product your users will love. You can use it to create a Web 2.0 app, that will engage its user community so that they always work in 'the flow' and move them to the next level of socializing with their network. One book I remembered - to be added to my reading list: &lt;a href="http://www.amazon.com/Mind-its-Own-Distorts-Deceives/dp/0393062139"&gt;&lt;span class="sans"&gt;A Mind of its Own: How Your Brain Distorts and Deceives&lt;/span&gt;&lt;/a&gt; ...and the &lt;a href="http://fishbowl.pastiche.org/2005/08/12/the_head_first_girls_double_life"&gt;double life of a head-first girl&lt;/a&gt; example was just great...&lt;br /&gt;&lt;br /&gt;And the keynote. Tim O'Reilly is certainly a great thinker and innovator in this area. He brought a lot of provocative thoughts in addition to commodity knowledge we've already had about Web 2.0.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_157107"&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=what-is-web-20-1194363300579044-4"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=what-is-web-20-1194363300579044-4" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/adunne/what-is-web-20-157107" title="View 'What Is Web 2.0?' on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Although I'm not a fan of his presentation style. He is too much aggressive, and screams too much. Btw. he mentioned &lt;a href="http://www.oreilly.com/catalog/9780596529321/"&gt;one very interesting book&lt;/a&gt; that came recently out of O'Reilly.&lt;br /&gt;&lt;br /&gt;Btw. I got to know O'Reilly will be publishing all the presentations from the expo on the &lt;a href="http://www.slideshare.net/tag/web2expoberlin"&gt;slideshare&lt;/a&gt;. Check it now!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-8415587256799347774?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/8415587256799347774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=8415587256799347774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/8415587256799347774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/8415587256799347774'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/11/web-20-expo-day-1.html' title='Web 2.0 Expo: Day 1'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-8301076785194644078</id><published>2007-11-04T23:33:00.000+01:00</published><updated>2007-11-04T23:43:34.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2expoberlin'/><title type='text'>Preparing for Web 2.0 Expo Berlin</title><content type='html'>I'm already packed, and just about to get some sleep before early morning flight to Berlin. The atmosphere is now heating up for the biggest Web 2.0 European event this year - &lt;a href="http://berlin.web2expo.com/"&gt;Web 2.0 Expo in Berlin&lt;/a&gt;. It's a big show, but despite this I'm looking forward to see some of the most influential guys in this industry. And gosh, hear about &lt;a href="http://code.google.com/apis/opensocial/"&gt;OpenSocial&lt;/a&gt; from the Google employee.&lt;br /&gt;&lt;br /&gt;Moreover, I cannot wait to discuss why some of the former garage startups became in 2 year &lt;a href="http://www.facebook."&gt;multi-billion companies&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;During the event, I will be blogging here, but also recording my activities &lt;a href="http://twitter.com/szklanowski"&gt;on Twitter.&lt;/a&gt; As I enabled phone in my Twitter, I can easily blog from the conference rooms, where WiFi access is, sadly, paid.&lt;br /&gt;&lt;br /&gt;See you at the Expo, or at least, keep up with my posts here and on Twitter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-8301076785194644078?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/8301076785194644078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=8301076785194644078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/8301076785194644078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/8301076785194644078'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/11/preparing-for-web-20-expo-berlin.html' title='Preparing for Web 2.0 Expo Berlin'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-6015770418258736247</id><published>2007-06-19T23:23:00.000+02:00</published><updated>2007-06-21T22:19:49.902+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intellij'/><category scheme='http://www.blogger.com/atom/ns#' term='jetbrains'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>JetGroovy delivers first-class Groovy support in Intellij Idea</title><content type='html'>As I got addicted to Groovy programming language recently, I was constantly lacking a good editor, that understands Groovy syntax and can support programmer. Until today I haven't found a tool, that does more that simple syntax highlighting and possibility to run Groovy scripts.&lt;br /&gt;&lt;br /&gt;I knew that &lt;a href="http://www.jetbrains.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;JetBrains&lt;/span&gt;&lt;/a&gt; is cooking something, but wasn't sure where to find it. &lt;a href="http://www.intellij.net/forums/thread.jspa?threadID=267864&amp;tstart=0"&gt;So I asked&lt;/a&gt;. They pointed me to the Confluence wiki space for the &lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Groovy+Home"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;JetGroovy&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;plugin&lt;/span&gt;&lt;/a&gt; - a Groovy support in &lt;a href="http://www.jetbrains.com/idea"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Intellij&lt;/span&gt; Idea&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unfortunately the instructions how to install the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;plugin&lt;/span&gt; from the sources weren't very clear, so I had to hack things around, but finally I managed to install the thing.&lt;br /&gt;&lt;br /&gt;Short instructions (they are tested only for Selena 7020 build of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Intellij&lt;/span&gt; Idea 7.0):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;EAP&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IntelliJ&lt;/span&gt; IDEA 7.0 (codenamed Selena) from the &lt;a href="http://www.jetbrains.net/confluence/display/IDEADEV/Selena+EAP"&gt;download page&lt;/a&gt;. The current version is Selena build 7020.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Checkout the Groovy project from &lt;span class="nobr"&gt;&lt;a href="http://svn.jetbrains.org/idea/Trunk/groovy" title="Visit page outside Confluence" rel="nofollow"&gt;http://svn.jetbrains.org/idea/Trunk/groovy.&lt;/a&gt; The HEAD in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SVN&lt;/span&gt; doesn't work properly with Selena 7020 so please checkout revision 8866.&lt;a href="http://svn.jetbrains.org/idea/Trunk/groovy" title="Visit page outside Confluence" rel="nofollow"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Run Selena and open Groovy project.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Configure Select 7020  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;IntelliJ&lt;/span&gt; IDEA &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SDK&lt;/span&gt; as Project &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;JDK&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add &lt;em&gt;idea.jar&lt;/em&gt; from &lt;em&gt;IDEA_HOME/lib&lt;/em&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Intellij&lt;/span&gt; Idea &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SDK&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;classpath&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add &lt;em&gt;tools.jar&lt;/em&gt; (for Windows) or &lt;em&gt;classes.jar&lt;/em&gt; (for Mac) from your Java &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SDK&lt;/span&gt; directory to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;IntelliJ&lt;/span&gt; Idea &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;SDK&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;classpath&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add &lt;span style="font-style: italic;"&gt;groovy-1.0.jar&lt;/span&gt; from &lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;GDK&lt;/span&gt;&lt;/span&gt; folder as Module Library&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run &lt;em&gt;generate.lexer&lt;/em&gt; task from the Ant &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;tool window&lt;/span&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Run the &lt;em&gt;Make&lt;/em&gt; Project command from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;IDEA's&lt;/span&gt; &lt;em&gt;Build&lt;/em&gt; menu&lt;/li&gt;&lt;li&gt;Run the &lt;em&gt;Prepare &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Plugin&lt;/span&gt; Module 'groovy' for deployment&lt;/em&gt; command from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;IDEA's&lt;/span&gt; &lt;em&gt;Build&lt;/em&gt; menu&lt;/li&gt;&lt;li&gt;A zip file will be generated in the project directory. Unzip it to the &lt;em&gt;IDEA_HOME/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;plugins&lt;/span&gt;&lt;/em&gt; directory&lt;/li&gt;&lt;li&gt;Restart IDEA&lt;/li&gt;&lt;/ol&gt;So I had installed it. And... well, I must say, it blown me away. I would probably need a book to describe &lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Features"&gt;all the features&lt;/a&gt; (actually I don't know which of them are already implemented or in what stage).&lt;br /&gt;&lt;br /&gt;To put things simple, this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;plugin&lt;/span&gt; aims to offer most of the intelligent editing features of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Intellij&lt;/span&gt; Idea for the Groovy language:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Editing"&gt;syntax highlighting&lt;/a&gt; (with parser that really understand language syntax, and not just regexp-based)&lt;/li&gt;&lt;li&gt;instant errors highlighting (for unresolved classes, properties, incompatible type assignments, inapplicable method calls) + intention to add missing imports&lt;br /&gt;&lt;/li&gt;&lt;li&gt;code folding, code &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;formatter&lt;/span&gt;&lt;/li&gt;&lt;li&gt;comments and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;todo&lt;/span&gt; support&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Execution"&gt;execution of Groovy scripts/Grails apps&lt;/a&gt;&lt;/li&gt;&lt;li&gt;easy configuration wizard for Groovy/Grails distributions&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Debugger"&gt;debugging of Groovy apps&lt;/a&gt;&lt;/li&gt;&lt;li&gt;compilation of Groovy apps into Java when needed&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Code+completion"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;GDK&lt;/span&gt;-aware code completion&lt;/a&gt; - this is a real killer - Idea knows all the extra Groovy method defined as a part of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;GDK&lt;/span&gt; and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_31"&gt;auto completes&lt;/span&gt; them. It makes use of the type inference where possible, and support also Swing builder.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Resolve"&gt;Resolve&lt;/a&gt; current variable,class,method and show source&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Surround+with"&gt;Surround code&lt;/a&gt; with popular constructs: if, while, try/catch, closure, etc.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Introduce+Variable"&gt;&lt;span style="text-decoration: underline;"&gt;I&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Introduce+Variable"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;ntroduce&lt;/span&gt; variable &lt;/a&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;refactoring&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Structure+view"&gt;Structure view&lt;/a&gt; for Groovy scripts, &lt;a href="http://www.jetbrains.net/confluence/display/GRVY/File+structure"&gt;file structure&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;popup&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Find usages, and &lt;a href="http://www.jetbrains.net/confluence/display/GRVY/Class+search"&gt;class search&lt;/a&gt; (by name)&lt;/li&gt;&lt;li&gt;Full Grails support: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;SDK&lt;/span&gt; configuration, controller, view, domain class, job, script, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;taglib&lt;/span&gt; creation, build-in Grails generators&lt;/li&gt;&lt;/ul&gt;Knowing the current status and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;roadmap&lt;/span&gt;, I cannot wait until this &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;plugin&lt;/span&gt; will be finalized. But even in the current alpha state it looks very very promising, and provides the unsurpassed Groovy support in the Java &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;IDE&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-6015770418258736247?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/6015770418258736247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=6015770418258736247' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/6015770418258736247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/6015770418258736247'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/06/jetgroovy-delivers-first-class-groovy.html' title='JetGroovy delivers first-class Groovy support in Intellij Idea'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-69687763620150491</id><published>2007-03-24T00:38:00.000+01:00</published><updated>2007-03-24T01:36:55.550+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='ror'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Future of Java is with not only Java</title><content type='html'>Java was almost always considered as weak and cumbersome for Web application development. &lt;a href="http://java.sun.com/products/servlet/"&gt;Standard APIs&lt;/a&gt; were low level, &lt;a href="http://struts.apache.org/"&gt;leading frameworks&lt;/a&gt; not very well designed and hard to unit-test and so on. Then &lt;a href="http://www.rubyonrails.org/"&gt;RoR&lt;/a&gt; came, and the war began.&lt;br /&gt;&lt;br /&gt;Since RoR is on the market, there are many tries from the Java community to release web framework with the productivity comparable to Rails. So far they all failed, just for one reason: Java is much less flexible than Ruby, when it comes to designing &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language"&gt;Domain Specific Languages&lt;/a&gt;. The  power of RoR comes from the fact, that it provides a  domain-specific language tailored specifically to web application development. In this language you can operate on abstractions from your problem domain - web applications. It makes development a real pleasure since you don't have to translate your thinking to the general programming language.&lt;br /&gt;&lt;br /&gt;I realized, that Java has to do something to survive in the web applications area. So when &lt;a href="http://java.sun.com/javase/6"&gt;Java 6&lt;/a&gt; came, a new hope was born. It is called &lt;a href="http://jcp.org/en/jsr/detail?id=223"&gt;JSR-223&lt;/a&gt; - Scripting for the Java platform. This Java extension provides set of interfaces allowing to integrate any scripting language into Java platform. By default, Mozilla Rhino (Javascript) is shipped as part of Java 6. Seems interesting? More yet to come...&lt;br /&gt;&lt;br /&gt;Even before JSR-223 was released, &lt;a href="http://www.robert-tolksdorf.de/vmlanguages.html"&gt;many languages&lt;/a&gt; were already ported on the JVM. If you read through an unbelievably long list there, you'll see that virtually every programming language created so far has the implementation for JVM. And now many of them can be connected to Java through the standard API.&lt;br /&gt;&lt;br /&gt;Assuming we want to use Rhino, calling Javascript from Java can be as simple as that:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;ScriptEngineManager mgr = new ScriptEngineManager();&lt;br /&gt;ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");&lt;br /&gt;try {&lt;br /&gt; jsEngine.eval("print('Hello, world!')");&lt;br /&gt;} catch (ScriptException ex) {&lt;br /&gt;   ex.printStackTrace();&lt;br /&gt;}  &lt;/pre&gt;The already existing project, &lt;a href="http://scripting.dev.java.net/"&gt;scripting.dev.java.net&lt;/a&gt; is an umbrella project, hosting list of  JSR-223 compatible scripting languages. The list is already pretty long, and contain some widely used languages as: Groovy, Javascript, Python, Ruby and others. And with Ruby, more specifically with &lt;a href="http://jruby.codehaus.org/"&gt;JRuby 0.9.8&lt;/a&gt; - JVM can run successfully RoR applications. Add to this the possibility to &lt;a href="http://www.springframework.org/docs/reference/dynamic-language.html"&gt;write Spring beans in dynamic languages&lt;/a&gt; and we have a full-fledged programming platform, independent of the language.&lt;br /&gt;&lt;br /&gt;So what you are waiting for? Go and grab RoR, implement your web interface, connect it to the backend written in Java, leverage Spring integration capabilities, and finally, give to customer the extension points, allowing him to code business rules in DSL created in Ruby for his business problem domain.&lt;br /&gt;&lt;br /&gt;The future of Java is bright, but not necessarily with only Java as the programming language...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-69687763620150491?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/69687763620150491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=69687763620150491' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/69687763620150491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/69687763620150491'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/03/future-of-java-is-with-not-only-java.html' title='Future of Java is with not only Java'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-7535279299564313999</id><published>2007-01-29T23:10:00.000+01:00</published><updated>2008-12-12T02:57:49.527+01:00</updated><title type='text'>Searching for perfect file manager...</title><content type='html'>&lt;span style="font-size:130%;"&gt;...or whether the tree navigation can be usable.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;As a recent Mac switcher, I tended to look for applications I got used to while working with Windows environment. One of the core ones was a file manager. I was a vivid fan of &lt;a href="http://www.ghisler.om/"&gt;Total Commander&lt;/a&gt; (former Windows Commander), and always preferred two-pane solution for managing files.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;So when I switched to Mac, I entered wonderful world of Mac Finder. To be honest, Finder is one of the relicts of Mac OS 9, and thus not very usable for me. It is not even a full Cocoa application. Then I found DiskOrder, a file manager relatively similar to Total Commander, for quite reasonable price. And now, after my HD crash, when DiskOrder support refuses to re-send me my serial number, I turned to &lt;a href="http://www.apple.com/downloads/macosx/system_disk_utilities/xfolders.html"&gt;XFolders&lt;/a&gt;, a very minimal file manager, wrapped into  nice brushed metal interface (like iTunes).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(hey, what is this guy mumbling here?)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;What I really want to talk about is not file managers, and their up/downsides. It's all about a tree navigation, isn't it? So, let's assume we have a tree and want to find our way through it.&lt;br /&gt;There are two main visual approaches to display tree:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;display a real tree with expandable branches (like in left-pane of Windows Explorer)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;display a one-level list with navigation helpers allowing to go one folder up (..), and possibly to the root&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;The interface is more usable, when those three questions can be answered easily:&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;where I was?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;where I am?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;where I can go?&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;The widget supporting the user takes a form of 'kind-of' breadcrumb, displaying the current path in the tree, with possibly some interactive (clickable) elements. As we are talking about navigating through the tree (possibly file system or class structure), keyboard navigation is an inevitable help.&lt;br /&gt;&lt;br /&gt;What I found in XFolders file manager, is almost perfect widget supporting user with a kind-of breadcrumb, fully dynamic and interactive.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/Rb51wc4JO1I/AAAAAAAAAAM/Oj8qcyXaa0Q/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_WeT78nlw528/Rb51wc4JO1I/AAAAAAAAAAM/Oj8qcyXaa0Q/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5025583709437901650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Let's describe it in detail: it display the current path in the file system, starting from the root. When user is drilling down into folders (with Enter), new parts are appended to the trail. The current folder is marked with blue background. When user wants to go back, he presses left arrow, and boom, we go back in the history.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_WeT78nlw528/Rb52_c4JO2I/AAAAAAAAAAU/TLYlx4TsVYQ/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_WeT78nlw528/Rb52_c4JO2I/AAAAAAAAAAU/TLYlx4TsVYQ/s320/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5025585066647567202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please note that still the last part is displayed. Why? Answer is very simple. It may be, that backward move was done by mistake, so the move forward (undo) should be still possible. And really, when user presses right arrow, he gets back again to the last folder.&lt;br /&gt;&lt;br /&gt;This right-left arrow navigation is pretty slick and fast, so that you can go back/forward on the chosen path. And only when you choose different route, the remaining of the trail gets truncated, displaying new path.&lt;br /&gt;&lt;br /&gt;With behavior, this widget acts very much like the traditional back/forward buttons in the browser, but it is so much usable, because all parts of the trails are immediately visible on the screen, ready to interact.&lt;br /&gt;&lt;br /&gt;I wish I had such a usable trail in the Total Commander, or in totally useless Windows Explorer. So now, despite its many deficiencies I start to really like XFolders. If only it can handle zip archives...&lt;br /&gt;&lt;br /&gt;So to summarize, pretty useless post about pretty useful widget...&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&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/18635615-7535279299564313999?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/7535279299564313999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=7535279299564313999' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/7535279299564313999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/7535279299564313999'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2007/01/searching-for-perfect-file-manager.html' title='Searching for perfect file manager...'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_WeT78nlw528/Rb51wc4JO1I/AAAAAAAAAAM/Oj8qcyXaa0Q/s72-c/Picture+1.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-116328840948854536</id><published>2006-11-12T00:29:00.000+01:00</published><updated>2006-11-12T01:16:19.113+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='webwork'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><title type='text'>Struts 2 - is it migration from Webwork worth the effort?</title><content type='html'>&lt;a href="http://struts.apache.org/2.x/index.html"&gt;Struts 2&lt;/a&gt; has recently reached beta stage, revealing &lt;a href="http://struts.apache.org/download.cgi#struts201"&gt;version 2.0.1&lt;/a&gt; to eagerly waiting &lt;a href="http://www.opensymphony.com/webwork"&gt;Webwork&lt;/a&gt; and Struts users. For those not knowing the history, Struts 2 is the rebranded version of latest stable version of Webwork, released under Struts umbrella. The question arises: is it worth to upgrade?&lt;br /&gt;&lt;br /&gt;For me, the question should rather: &lt;span style="font-weight: bold;"&gt;when&lt;/span&gt;? It is very obvious that Struts 2 as the successor of Webwork, once it reaches the first production release, will grab all the development team attention, leaving Webwork in so-called maintenance state, God knows how long.&lt;br /&gt;&lt;br /&gt;Although the very first impression of Struts 2 migtht be that it is nothing more than &lt;a href="http://cwiki.apache.org/WW/webwork-2-migration-strategies.html"&gt;rebranded Webwork&lt;/a&gt; with virtually no changes, in fact it's quite more. Apart from rebranding activities, there were some tough decisions taken such as:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Struts 2 builds on &lt;a href="http://wiki.opensymphony.com/display/XW/XWork2"&gt;XWork 2&lt;/a&gt; command framework (currently also in beta stage)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Java 5 is required to compile and deploy Struts 2 application (although there is &lt;a href="http://retrotranslator.sourceforge.net/"&gt;Retrotranslated&lt;/a&gt; version also available)&lt;/li&gt;&lt;li&gt;all elements marked as deprecated in Webwork are now removed (the most notable change is the removal of home-grown IOC framework - Struts 2 relies on &lt;a href="http://www.springframework.org"&gt;Spring&lt;/a&gt; instead)&lt;/li&gt;&lt;/ul&gt;Java 5 requirement is nothing unusual, but in the industries, where Windows XP Service Pack 2 is still in early access stage, and BEA 8.1 SP4 is used as the productive application server, this can be a showstopper.&lt;br /&gt;&lt;br /&gt;To add even more pepper to this explosive mixture, the current version management for Struts 2 is totally confusing for many people: &lt;span style="font-style: italic;"&gt;2.0.1 is in beta, so where's stable 2.0.0&lt;/span&gt;?  To be honest, you won't find stable 2.0.0 version, 2.0.1 is released in beta, and 2.0.2 is in the making.&lt;br /&gt;&lt;br /&gt;So, speaking on behalf of my team, we'll probably wait to the first stable version of Struts to give it a try and, if successful, migrate. What about you?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-116328840948854536?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/116328840948854536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=116328840948854536' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/116328840948854536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/116328840948854536'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/11/struts-2-is-it-migration-from-webwork.html' title='Struts 2 - is it migration from Webwork worth the effort?'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-116302702902155482</id><published>2006-11-08T23:59:00.000+01:00</published><updated>2006-11-09T00:03:49.033+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><title type='text'>Trip to Engelberg</title><content type='html'>A very lazy and short post. Knowing that the reall fall is coming soon, we went for the last hiking trip to the Alps. Engelberg was as alway very enjoyable experience, and walking around Trubsee at ~1700m high, with a breathtaking view of Titlis is unforgettable.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; width: 194px; font-family: arial,sans-serif; font-size: 83%;"&gt;&lt;div style="background: transparent url(http://picasaweb.google.com/f/img/transparent_album_background.gif) no-repeat scroll left center; height: 194px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;a href="http://picasaweb.google.com/szklanowski/Engelberg28102006"&gt;&lt;img src="http://lh4.google.com/szklanowski/RU5RaZPhABE/AAAAAAAAAD4/bOGabbrGhvw/s160-c/Engelberg28102006.jpg" style="border: medium none ; padding: 0px; margin-top: 16px;" height="160" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://picasaweb.google.com/szklanowski/Engelberg28102006"&gt;&lt;div style="color: rgb(77, 77, 77); font-weight: bold; text-decoration: none;"&gt;Engelberg 28.10.2006&lt;/div&gt;&lt;/a&gt;&lt;div style="color: rgb(128, 128, 128);"&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/18635615-116302702902155482?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/116302702902155482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=116302702902155482' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/116302702902155482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/116302702902155482'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/11/trip-to-engelberg.html' title='Trip to Engelberg'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-115939024517427550</id><published>2006-09-27T22:32:00.000+02:00</published><updated>2006-09-27T23:24:35.513+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Choosing browser for Mac OS X</title><content type='html'>When I was just after a switch to Mac, I thought: Atleast! I will no more spend hours evaluating all the possible software I can use to fulfill certain task. The same feeling was accompanying me, when choosing the primary browser for my Mac mini.&lt;br /&gt;&lt;br /&gt;Easier said, than done.&lt;br /&gt;&lt;br /&gt;According to Darrel Knutson's &lt;a href="http://darrel.knutson.com/mac/www/browsers.html"&gt;amazing Mac OS X browser list&lt;/a&gt;, there exists more than 100 browsers/variations available for Mac OS X. And PC-fans laugh because there is no software for Macs...&lt;br /&gt;&lt;br /&gt;After a comprehensive read-through I ended up with four browsers:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt; - built-in, very fast startup and simple user interface. Renders page very quickly. But to be honest, its KHTML rendering engine is no match to Gecko.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.getfirefox.com"&gt;Firefox&lt;/a&gt; - Mac OS version looks very lean, although what I think is missing is good integration with underlying operating system (which allows to use native spell-checkers, create yellow stickies out of web pages etc)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opera.com"&gt;Opera&lt;/a&gt; - the best all-in-one bundle browser offering. To achieve the same level of functionality in Firefox, I need quite some plugins.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.caminobrowser.org"&gt;Camino&lt;/a&gt; - another product of Mozilla store, native Cocoa app with embedded Gecko engine. Somehow has what the Firefox is missing. On the other hand, is most probably not compatible with Firefox extensions standard, which is pain, when it comes to extending it.&lt;/li&gt;&lt;/ol&gt;And now, in which one should I open the next web page I want to view?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-115939024517427550?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/115939024517427550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=115939024517427550' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115939024517427550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115939024517427550'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/09/choosing-browser-for-mac-os-x.html' title='Choosing browser for Mac OS X'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-115645806171237213</id><published>2006-08-24T23:46:00.000+02:00</published><updated>2006-09-16T20:35:59.663+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Switching to Mac OS X Tiger - comedy in two acts</title><content type='html'>At one day, there comes the time in your life, to take a really important decision. It can be about marrying a woman you love, having a baby, moving to &lt;a href="http://www.switzerland.com/portal.html"&gt;another country&lt;/a&gt; with the whole family, such things. As I've already done all of the above, I needed some more challenges. So I switched to &lt;a href="http://www.apple.com/macmini/"&gt;Mac&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I already has a decent &lt;a href="http://www.neovouk.com/products/X-17.htm"&gt;flat panel&lt;/a&gt;, so I needed to buy computer only. I chose Mac mini, an affordable entry level Mac, just to feel the taste of another operating system and hardware. If I'm sucked into the brave new Mac world, I'll upgrade to some top performance machine, if not... Well, life will show.&lt;br /&gt;&lt;br /&gt;My Mac mini was originally packaged with Intel Core Duo processor and upgraded RAM (1Gb).&lt;br /&gt;It came in a beautifully designed carton box, with a handle. Very convenient to carry. When I unpacked it, shaking hands..., well... these guys know how to &lt;a href="http://www.amazon.com/gp/product/0385267746/002-0342189-6231244?v=glance&amp;amp;n=283155"&gt;design everyday things&lt;/a&gt;. Mac mini is slick, very well finished, and everything just fits. This was the second time I had such a feeling .The first time was (not surprisingly), when I got &lt;a href="http://www.apple.com/ipod/"&gt;iPod&lt;/a&gt; in my hands.&lt;br /&gt;&lt;br /&gt;I connected everything and switched on the power. It discovered automatically my panel, adjusted to its optimal resolution, discovered my old PC 2-button mouse, and connected to Internet. The only one small configuration I needed to do was to insert CD with a Bluetooth driver for the keyboard (this driver will be most probably included in the next version of &lt;a href="http://www.apple.com/macosx"&gt;Mac OS X&lt;/a&gt;, code-named &lt;a href="http://www.apple.com/macosx/leopard/index.html"&gt;Leopard&lt;/a&gt;), and of course switch on the keyboard itself.&lt;br /&gt;&lt;br /&gt;My first feeling... well, being stuck to Windows for so long time (also to various flavors of U**x, but they are not so user-friendly) I must say that it feels just... finished. And polished. And sexy. Gosh, I couldn't count my 'wows' during the first days of work with Mac OS X. There are some concepts in the OS, light years before any other operating system on the earth. Just to name some:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;spring-loaded folders - thanks to this feature I stopped to be a slave of two-panel file manager dated in 1990s (you still remember NC?)&lt;/li&gt;&lt;li&gt;the notion of 'app' - how wisely they designed the applications, so they are visible as single icons, and managed exactly in the same way, so basic user doesn't see the file, except for his/her own documents&lt;/li&gt;&lt;li&gt;responsiveness of the system - legendary preemptive-threading seems to really work in this system, no matter what you do. It will never stop, hang, or display half-drawn window frame.&lt;/li&gt;&lt;/ul&gt;Using my &lt;a href="http://www.iriver.com/"&gt;&lt;/a&gt;, I was able to easily transfer my files, preserving Firefox and Thunderbird profiles (which was the killer success factor for my wife to switch).&lt;br /&gt;&lt;br /&gt;Now my PC is still standing under the desk, being a base for the Mac min. Both together look rather strange, Mac mini looks like additional USB drive put on the top of PC.&lt;br /&gt;&lt;br /&gt;So... the old king died, long life for the new king!&lt;br /&gt;&lt;br /&gt;To justify the title of the post, in the next act... you'll see :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-115645806171237213?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/115645806171237213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=115645806171237213' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115645806171237213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115645806171237213'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/08/switching-to-mac-os-x-tiger-comedy-in.html' title='Switching to Mac OS X Tiger - comedy in two acts'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-115426938956633471</id><published>2006-07-30T15:45:00.001+02:00</published><updated>2009-12-28T23:57:11.032+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><title type='text'>How polarizing filter can significantly improve your landscape photos</title><content type='html'>So far I was quite skeptical, when it comes to using filters in photography. For me, filters look like improving the Mother Nature. And I wanted to as natural photos as possible. That's why the only filter equipment I had was neutral UV filter, just for protecting lens of my DSLR.&lt;br /&gt;&lt;br /&gt;well... recently I gave up and bought another filter, a polarizing one. What's so interesting in those filters?&lt;br /&gt;&lt;br /&gt;Well, the version for dummies would be: it eliminates some of the light reflections from the objects we are photographing. I don't want to start here a discussion what is the polarization of light waves. For those interested, go to the library and borrow a physics book.&lt;br /&gt;&lt;br /&gt;Polarizing filter can be successfully used in all kind of landscape photos. Under certain conditions it improves the colors saturation, giving more rich and intense colors like: grass is more green; roses are more red; the sky is more blue.&lt;br /&gt;&lt;br /&gt;For digital SLRs you need a circular polarizing filter. When you screw it to your lenses, you can turn it to achieve the desired effect.  Let's start with the proper use of the filter:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_WeT78nlw528/Szk1Kmuo_RI/AAAAAAAAEEM/vJbCvTEKbDQ/s400/IMG_2276.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://lh4.ggpht.com/_WeT78nlw528/Szk1Kmuo_RI/AAAAAAAAEEM/vJbCvTEKbDQ/s400/IMG_2276.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/_WeT78nlw528/Szk1Nnmvz4I/AAAAAAAAEEQ/BeCiWeZhC8E/s400/IMG_2277.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://lh3.ggpht.com/_WeT78nlw528/Szk1Nnmvz4I/AAAAAAAAEEQ/BeCiWeZhC8E/s400/IMG_2277.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Those two photos were taken today in Basel (this is taken at the mouth of the river Birs, coming to Rhein). The light was very sharp, although there were some clouds on the sky. Air very humid.&lt;br /&gt;&lt;br /&gt;The former photo was taken with only UV filter. Result: green is burnt out, too bright sky with no difference of a shade for different clouds on it. The latter photo is taken with a polarizing filter.&lt;br /&gt;&lt;br /&gt;What we achieved: green is more rich and intense and looks more natural. You can see more of the river bottom because there are no reflections on the water. And the last but not least: look at the sky. Every cloud is very distinct and clearly visible. That's how we turned pejor photo into a decent one. Without any Photoshop magic.&lt;br /&gt;&lt;br /&gt;But there is also the darker side of a coin. If you are not observing what you are doing with your polarizing filter, you can easily screw up a photo nicely.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_WeT78nlw528/Szk1QYKNJqI/AAAAAAAAEEU/jPR07hkr5v0/s400/IMG_2280.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://lh4.ggpht.com/_WeT78nlw528/Szk1QYKNJqI/AAAAAAAAEEU/jPR07hkr5v0/s400/IMG_2280.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/_WeT78nlw528/Szk1ThsH46I/AAAAAAAAEEY/UxLtM0U6slQ/s400/IMG_2281.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://lh3.ggpht.com/_WeT78nlw528/Szk1ThsH46I/AAAAAAAAEEY/UxLtM0U6slQ/s400/IMG_2281.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;On this set both photos were taken with a polarizing filter. The former one shows not appropriate use of the filter. What does it mean? You can easily turn the filter in a way that it removes all, or almost all light reflections from the picture. This results in picture looking as very 'flat' , and generall being  'a still life'.&lt;br /&gt;&lt;br /&gt;Second picture shows a proper use of the filter. It removed only the reflections, that were spoiling the picture. As a result there is sunshine flooding in on the grass, clouds are clearly visible, grass is vivid green and so on.&lt;br /&gt;&lt;br /&gt;I bought a low-budget HAMA filter for about 70 CHF, but it still performs very well.&lt;br /&gt;&lt;br /&gt;In the next chapter: how to achieve amazing effects with digital colour filters when doing B&amp;amp;W photography.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-115426938956633471?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/115426938956633471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=115426938956633471' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115426938956633471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115426938956633471'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/07/how-polarizing-filter-can.html' title='How polarizing filter can significantly improve your landscape photos'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_WeT78nlw528/Szk1Kmuo_RI/AAAAAAAAEEM/vJbCvTEKbDQ/s72-c/IMG_2276.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18635615.post-115411977559322151</id><published>2006-07-28T22:13:00.000+02:00</published><updated>2006-12-06T21:05:17.431+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Why CSS still (possibly) sucks?</title><content type='html'>Ready to demo a first milestone of a website based on our wonderful Intranet framework in front of eager customer. Countdown started. 15 mins left.&lt;br /&gt;&lt;br /&gt;I'm catching our CSS specialist on messenger. Some icons are still not in place. Asking him to make the latest fixed I get the answer: Icons are ok, but moving file size to this column is not so easy. We  need to put it off for the next milestone. I take his word for that, but very surprised.&lt;br /&gt;&lt;br /&gt;Coming from the stone age of web development I can remember that moving such a thing was always a matter of seconds (ok, some morons needed more than one minute). Our framework is fully compliant with Web standards, with XHTML containing content of the page, CSS defining the layout, and separate Javascript for the page dynamic behavior. So what's wrong with this?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(I hear crowd surrounding me... those are Web standards fans, coming to take my head...)&lt;/span&gt;. But, as even murderer has a right to say a last sentence, let me explain the rationale behind my CSS rant.&lt;br /&gt;&lt;br /&gt;First look at the current state of CSS may arise some thoughts like: specification is ok, only implementations are lame. Surely, they suck, it's enough to take some simple examples, and every browser gives up on certain CSS rules combination. But why is it so lame? Do we lack good programmers? Even if we intuitively hate Microsoft, there are hundreds of brilliant guys working on a Gecko engine, the basis for our beloved Firefox.&lt;br /&gt;&lt;br /&gt;My thesis is: all implementations suck, because the specification has problems. IMHO it gives not enough abstraction when it comes to defining the layout.  CSS rules and the way they are written, are too implementation specific. You need to have a mini Gecko engine embedded into your brain to work with CSS efficiently. And, for God's sake, who can really say how the page will look like, seeing only its CSS stylesheet? Even if you master the CSS theory, there will be a couple of hacks present, which bloat the CSS sheet very efficiently.&lt;br /&gt;&lt;br /&gt;Does it really have to be that hard? On the one hand, it's pumping up global CSS market, giving higher salaries to those lucky, which mastered CSS perfectly, along with the browser hacks. On the other hand, very small elite of CSS gurus causes more damage, than you think. Why? Because all the rest is still using old good tables for page layout. People were able to master Java, .Net, Ajax, and RoR in the meantime, but not bloody CSS...&lt;br /&gt;&lt;br /&gt;So maybe it's a time for next Rod Johnson (borrowing from the Java world), to take up the gauntlet and propose totally different approach?&lt;br /&gt;&lt;br /&gt;PS.&lt;br /&gt;Because it's my first post, some of the general blurb has to appear:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I write this blog for my very personal egoistic pleasure. I do not feel like writing elaborates here. Every post will be the most likely my braindump from the day it was written.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you (hopefully) get across the word verification hydra, please remember that comments that are not related to the post, will be removed.&lt;/li&gt;&lt;li&gt;Greetings for our CSS guru despite the CSS shortcomings. You're great, man!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Thanks for understanding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18635615-115411977559322151?l=szklanowski.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://szklanowski.blogspot.com/feeds/115411977559322151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18635615&amp;postID=115411977559322151' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115411977559322151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18635615/posts/default/115411977559322151'/><link rel='alternate' type='text/html' href='http://szklanowski.blogspot.com/2006/07/why-css-still-possibly-sucks.html' title='Why CSS still (possibly) sucks?'/><author><name>Michal Szklanowski</name><uri>http://www.blogger.com/profile/03742809612388467597</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://static.flickr.com/69/199893084_e76b0b150a_m.jpg'/></author><thr:total>4</thr:total></entry></feed>
