<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEAAR3w_cCp7ImA9WhBWF0w.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032</id><updated>2013-04-11T14:45:46.248-07:00</updated><category term="xpdays" /><category term="tools" /><category term="documentation" /><category term="NORCHIP2007" /><category term="erlang" /><category term="clojure" /><category term="books" /><category term="C" /><category term="resteasy" /><category term="gwt" /><category term="maven" /><category term="UI" /><category term="sun tech days" /><category term="sed" /><category term="presentation" /><category term="software development" /><category term="EJB" /><category term="bytecode" /><category term="grails" /><category term="awk" /><category term="code kata" /><category term="travel" /><category term="jrebel" /><category term="job" /><category term="JAZOON2008" /><category term="geecon" /><category term="websphere" /><category term="video" /><category term="apache synapse" /><category term="Flex" /><category term="eclipse" /><category term="FPGA" /><category term="ucertify" /><category term="training" /><category term="scripting" /><category term="scala" /><category term="esb" /><category term="jax-rs" /><category term="intellij" /><category term="aspectj" /><category term="bash" /><category term="radar" /><category term="oracle" /><category term="code snippet" /><category term="continuous delivery" /><category term="gsoc2008" /><category term="groovy" /><category term="software" /><category term="youtrack" /><category term="practices" /><category term="apache activemq" /><category term="dsl" /><category term="openportal" /><category term="waterfall" /><category term="confess_2012" /><category term="fix" /><category term="fun" /><category term="version control" /><category term="testing" /><category term="ubuntu" /><category term="jms" /><category term="ide" /><category term=".NET" /><category term="screencast" /><category term="ruby" /><category term="AOP" /><category term="stomp" /><category term="jdbc" /><category term="mule" /><category term="debugger" /><category term="JavaZone2011" /><category term="javaone2010" /><category term="jenkins" /><category term="liverebel" /><category term="jvm language summit" /><category term="tomcat" /><category term="hacking" /><category term="gsoc2007" /><category term="apache camel" /><category term="jfokus2012" /><category term="C++" /><category term="gradle" /><category term="33rd degree" /><category term="agile" /><category term="apache commons" /><category term="python" /><category term="JavaZone2012" /><category term="BlazeDS" /><category term="jetty" /><category term="devoxx" /><category term="JCR" /><category term="myeclipse" /><category term="quickfixj" /><category term="JAZOON2010" /><category term="Android" /><category term="vaadin" /><category term="jfokus2011" /><category term="linux" /><category term="springframework" /><category term="embedded" /><category term="jackrabbit" /><category term="oss" /><category term="ssh" /><category term="javaone2007" /><category term="jvm" /><category term="Java" /><category term="jboss drools" /><category term="netbeans" /><category term="life" /><category term="asm" /><category term="PHP" /><category term="certification" /><category term="sql" /><category term="artifactory" /><category term="unix" /><category term="twitter" /><category term="jbossas" /><category term="university" /><title>Code Impossible</title><subtitle type="html">something about software (development)</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://arhipov.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>172</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/AntonsBlog" /><feedburner:info uri="antonsblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEAAR3w-fyp7ImA9WhBWF0w.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-8976998962734468247</id><published>2013-04-11T14:45:00.000-07:00</published><updated>2013-04-11T14:45:46.257-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-11T14:45:46.257-07:00</app:edited><title>GeekOUT 2013, Tallinn, June 12-14</title><content type="html">&lt;p&gt;&lt;a href="http://geekout.ee/"&gt;GeekOUT&lt;/a&gt; conference started in 2011 as a local Java event. In 2013 it will be the 3rd coming for GeekOUT and the conference agenda is quite outstanding!&lt;/p&gt;

&lt;center&gt;&lt;a href="http://geekout.ee/conference/schedule/" imageanchor="1" &gt;&lt;img border="0" src="http://1.bp.blogspot.com/-pu8-xnEruyI/UWcn_9t0B3I/AAAAAAAAQtc/OeRCVdPGAIU/s320/geekout-logo-large.png" /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;There are 3 things about the conference that stand out:&lt;br/&gt;
&lt;br/&gt;
&lt;b&gt;Agenda&lt;/b&gt; - 15 carefully selected talks. It is all about Java, JVM and JVM programming languages and tooling. &lt;br/&gt;
&lt;b&gt;Workshops&lt;/b&gt; - a dedicated day for hands-on workshops. &lt;br/&gt;
&lt;b&gt;DemoGrounds&lt;/b&gt; - a number of very cool vendors will be exhibiting: Hazelcast, CloudBees, Atlassian and more! &lt;br/&gt;
&lt;/p&gt;

&lt;p&gt;However, one interesting thing about the conference is that it takes place in &lt;a href="http://en.wikipedia.org/wiki/Tallinn"&gt;Tallinn&lt;/a&gt;. I can tell you for sure - Tallinn is absolutely awesome in June! Well, it usually is :) So if you are a Java developer and haven't been to Tallinn yet - now you have a good reason to visit the city!&lt;/p&gt; 

&lt;center&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-GexY4GbxOQc/UWcuahYJNVI/AAAAAAAAQts/qPO5R21OQNA/s320/tallinn.png" /&gt;&lt;/center&gt;

&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/OxFVlABJgN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/8976998962734468247/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=8976998962734468247" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8976998962734468247?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8976998962734468247?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/OxFVlABJgN0/geekout-2013-tallinn-june-12-14.html" title="GeekOUT 2013, Tallinn, June 12-14" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-pu8-xnEruyI/UWcn_9t0B3I/AAAAAAAAQtc/OeRCVdPGAIU/s72-c/geekout-logo-large.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2013/04/geekout-2013-tallinn-june-12-14.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ABRns6eCp7ImA9WhBQFkk.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-6409342068673603621</id><published>2013-03-18T16:22:00.000-07:00</published><updated>2013-03-18T16:35:57.510-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-18T16:35:57.510-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="33rd degree" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><title>Back from 33rd Degree</title><content type="html">&lt;a href="http://33degree.org/"&gt;33rd Degree&lt;/a&gt; conference have changed location this year. This time the action took place in &lt;a href="http://en.wikipedia.org/wiki/Warsaw"&gt;Warsaw&lt;/a&gt;. It seems that 33rd Degree has outgrown its venue in Krakow and the organizers decided to pursue the possibility to expand the conference.

&lt;h1&gt;The venue&lt;/h1&gt;

&lt;p&gt;I realized that the venue "configuration" counts a lot. This time the conference was located equally on 2 floors of the &lt;a href="http://www.gromada.pl/"&gt;Gromada Airport&lt;/a&gt; hotel. Actually it was a fair separation for both vendors and speakers, but there's a caveat. If the fancier sponsors are on the top floor and the most famous speakers are there as well, then the vendors who locate in the "bunker" should be worried. Actually the speakers who get to speak in the other floor should be worried as well. Literally, on the first day when I arrived, I could not wait in the line for a cup of tea at the top floor and at the same time it was dead empty at the bottom floor. This is just how the crowd moves, and it is very hard to fix it.&lt;/p&gt;

&lt;h1&gt;My talks&lt;/h1&gt;

&lt;p&gt;My first talk &lt;i&gt;&lt;b&gt;Do you really get your IDE?&lt;/b&gt;&lt;/i&gt; happened to take place at the bottom floor at the same time when a beer party was starting at the top floor. I was almost sure that noone will be interested in coming to the talk and my bet was that only 5-10 people would show up. I was totally wrong. The room was full. Very surprising. Since it was a BOF format and a lot time was consumed by conversations in the middle of the talk, I didn't really cover all the cool tricks that I wanted but I would count this talk pretty successful anyway - it was fun and entertaining. I hope I can "sharpen the saw" in delivering this talk a bit more since people really enjoy learning the tools.&lt;/p&gt;

&lt;center&gt;&lt;a href="http://3.bp.blogspot.com/-qJhHKvRiroE/UUekyJdNDGI/AAAAAAAAQtE/rKGobAakkjk/s1600/boromir_mem_intellij_ctrl_s.jpg" imageanchor="1" &gt;&lt;img border="0" src="http://3.bp.blogspot.com/-qJhHKvRiroE/UUekyJdNDGI/AAAAAAAAQtE/rKGobAakkjk/s320/boromir_mem_intellij_ctrl_s.jpg" /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;My second talk was about JRebel and how it can be used for updating Java applications. Not so many people came this time, probably because JRebel is a well known tool already and &lt;a href="https://twitter.com/jbaruch"&gt;Baruch&lt;/a&gt; has dragged all the attendees in his talk instead.&lt;/p&gt;

&lt;h1&gt;Other talks&lt;/h1&gt;

&lt;p&gt;I usually don't attend that many sessions at the conferences since I know a lot of speakers personally and can learn from them directly in off-line conversations. However, this time I decided to go and listen and learn some cool stuff at the sessions.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;Leading the technical change by Nathaniel Schutta&lt;/i&gt;&lt;/b&gt;. The talk title and abstract did not fire up my curiosity. I just know that &lt;a href="https://twitter.com/ntschutta"&gt;Nathaniel&lt;/a&gt; has a style delivering the presentations and I wanted to go and learn from his performance. The idea is very simple actually: instead of bullet points Nathaniel creates a slide per bullet point and makes it look attractive so that when the next slides comes he can see it from his laptop screen and then he knows what and how he should say. That is why the delivery is so smooth, no matter which topic he presents. Of course Nathaniel didn't skip the book he co-authored, the &lt;a href="http://presentationpatterns.com/"&gt;Presentation Patterns&lt;/a&gt; - very useful book for everyone who wants to present at the conferences.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;Being Honest - Rethinking Enterprise Java by Adam Bien.&lt;/i&gt;&lt;/b&gt; &lt;a href="https://twitter.com/adambien"&gt;Adam&lt;/a&gt; is a very energetic speaker and I actually like his presentations about Java EE very much. But this time the technical aspects of the presentation didn't do good. The large room was full, but the screen was way too small for everyone to see the code. Plus the mic wasn't really working and it was quite hard to listen, so I could help myself but leave the room for some other talk.&lt;/p&gt;

&lt;center&gt;&lt;a href="http://4.bp.blogspot.com/-_QC8VSeWdlU/UUeYcfHzNqI/AAAAAAAAQss/4IyeEt3d01A/s1600/33-adam-bien-talk.jpg" imageanchor="1" &gt;&lt;img border="0" src="http://4.bp.blogspot.com/-_QC8VSeWdlU/UUeYcfHzNqI/AAAAAAAAQss/4IyeEt3d01A/s320/33-adam-bien-talk.jpg" /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;So I made it to the talk about &lt;b&gt;&lt;i&gt;Kotlin by Hadi Hariri&lt;/i&gt;&lt;/b&gt;. Kotlin's ecosystem is doing great steps forward. Unfortunately I didn't see the whole talk. In the part that I grasped this time Hadi was talking about the features that allow creating DSLs and he presented his own development, &lt;a href="https://github.com/hhariri/spek"&gt;Spek&lt;/a&gt;, the specification framework for Kotlin.&lt;/p&gt;

&lt;center&gt;&lt;a href="http://2.bp.blogspot.com/-kYywnNUfPbQ/UUea0lQKOhI/AAAAAAAAQs0/hbrYcrheaL0/s1600/33-hadi-hariri-talk.jpg" imageanchor="1" &gt;&lt;img border="0" src="http://2.bp.blogspot.com/-kYywnNUfPbQ/UUea0lQKOhI/AAAAAAAAQs0/hbrYcrheaL0/s320/33-hadi-hariri-talk.jpg" /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;Scripted: Embracing Eclipse Orion by Martin Lippert&lt;/i&gt;&lt;/b&gt;. This was very unfortunate. Very nice talk about very nice tool with almost empty room. I call it "bad marketing". &lt;a href="https://twitter.com/martinlippert"&gt;Martin&lt;/a&gt; is a good speaker and he talks about interesting topics, but it seems the title of the talk turned off the crowd. Who cares about Eclipse Orion at this kind of conference? Besides, nothing in the talk was really about Eclipse Orion. It was about &lt;a href="https://github.com/scripted-editor/scripted/"&gt;Scripted&lt;/a&gt; - a kick-ass browser based JavaScript editor, very interesting R&amp;D project developed at SpringSource/VMWare.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;Programming with Lambda Expressions in Java by Venkat Subramaniam.&lt;/i&gt;&lt;/b&gt; &lt;a href="https://twitter.com/venkat_s"&gt;Venkat's&lt;/a&gt; talks are so perfect it is hard to get a seat in the room. Attendees usually occupy the room in advance before the talk starts and those who are late steal the chairs from other rooms in order to get a seat. Nothing really advanced in the topic, but Venkat presents it with passion. Very entertaining.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;How we took our server-side application to the Cloud and liked what we got&lt;/i&gt;&lt;/b&gt; by &lt;a href="https://twitter.com/jbaruch"&gt;Baruch Sadogursky&lt;/a&gt;. Very interesting talk for those who want to learn the basics of multy-tenancy and approaches in implementation for SaaS. Baruch talked about the solution &lt;a href="http://www.jfrog.com/home/v_artifactory_opensource_overview"&gt;they&lt;/a&gt; chose for the hosted version of &lt;a href="http://www.jfrog.com/home/v_artifactorypro_overview"&gt;Artifactory&lt;/a&gt; - what were the challenges and pitfalls. &lt;/p&gt;

&lt;center&gt;&lt;a href="http://1.bp.blogspot.com/-ccl-SuuaITM/UUehoKhK3LI/AAAAAAAAQs8/RJsCjf-2LSw/s1600/33-baruch-talk.jpg" imageanchor="1" &gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ccl-SuuaITM/UUehoKhK3LI/AAAAAAAAQs8/RJsCjf-2LSw/s320/33-baruch-talk.jpg" /&gt;&lt;/a&gt;&lt;/center&gt;


&lt;h1&gt;Overall&lt;/h1&gt;

&lt;p&gt;33rd Degree was definitely a success for the organizers but still there's plenty of details to improve: technical equipment would be the first on the list. Something needs to be done for managing the crowd - most of the time people are late for the sessions by a lot (with exception for the Venkat's talks). This is very distracting for the speakers, I think, even if they say it is not.&lt;/p&gt;

&lt;p&gt;The great thing about 33rd Degree is that &lt;a href="https://twitter.com/grzegorzduda"&gt;Grzegorz&lt;/a&gt; works super-hard to organize it all: get the great (NFJS) speakers, cool vendors (Atlassian, Plumbr, JetBrains, etc), and the venue, which is actually very nice: plenty of space, great food, very close to the airport. plus, the price for the conference is still very affordable.&lt;/p&gt;




&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/Fg5SQrvukGo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/6409342068673603621/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=6409342068673603621" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/6409342068673603621?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/6409342068673603621?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/Fg5SQrvukGo/back-from-33rd-degree.html" title="Back from 33rd Degree" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-qJhHKvRiroE/UUekyJdNDGI/AAAAAAAAQtE/rKGobAakkjk/s72-c/boromir_mem_intellij_ctrl_s.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2013/03/back-from-33rd-degree.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcGQH8yeip7ImA9WhBRGU0.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-4506190269618622445</id><published>2013-03-09T07:18:00.000-08:00</published><updated>2013-03-09T23:20:21.192-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-09T23:20:21.192-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="33rd degree" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><title>Talking at 33rd Degree conference</title><content type="html">&lt;p&gt;Once again, I'm back to &lt;a href="http://2013.33degree.org/"&gt;33rd Degree&lt;/a&gt; conference, taking place in Warsaw on March 13-15.&lt;/p&gt;

&lt;center&gt;&lt;a href="http://2013.33degree.org/" imageanchor="1" &gt;&lt;img border="0" src="http://3.bp.blogspot.com/-3Lr1xpn6Rx4/UTtOcoBCgQI/AAAAAAAAQsc/Vo2iyZIDibs/s320/33degree2013.png" /&gt;&lt;/a&gt;&lt;/center&gt;

&lt;p&gt;I'm going to have 2 talks there:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;a href="http://2013.33degree.org/talk/show/56"&gt;Do you really get your IDE?&lt;/a&gt;&lt;/b&gt;, which is actually a BOF. This is my first time experience in running a BOF, so I'm not really sure how it turns out. I want to discuss with the folks, how the IDEs are used and how are the developers using the IDEs. I will play a bit with the code in IntelliJ IDEA and probably jump into other IDEs as well.&lt;/p&gt; 

&lt;p&gt;&lt;b&gt;&lt;a href="http://2013.33degree.org/talk/show/57"&gt;Reloading Java applications like a Pro.&lt;/a&gt;&lt;/b&gt; At many conferences I've been talking about the very root of the turnaround problems in Java, the reasons and pitfalls. But this time I decided that it would be much more fun to showcase what JRebel can do for different types of Java applications. I plan to talk about the mechanics of the updates and what is happening inside Java application when JRebel is doing it work. Hopefully I can fit several demo scenarios into the talk: for Spring based application, for JavaEE, maybe something for non-conventional apps and desktop apps (e.g. JavaFX).&lt;/p&gt;

&lt;p&gt;I'm glad that 33rd Degree organizers allowed me to talk about JRebel directly. At many conferences the organizers are actually quite hesitant to accept any talks about commercial products. However, every time I give a talk on some technical topic, the attendees actually are eager to ask questions about JRebel rather than about the talk topic itself. It means that JRebel is more interesting, than, for instance, Java bytecode. So why bother about the commercial side of it?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/IvwAWWJXJnk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/4506190269618622445/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=4506190269618622445" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/4506190269618622445?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/4506190269618622445?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/IvwAWWJXJnk/talking-at-33rd-degree-conference.html" title="Talking at 33rd Degree conference" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-3Lr1xpn6Rx4/UTtOcoBCgQI/AAAAAAAAQsc/Vo2iyZIDibs/s72-c/33degree2013.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2013/03/talking-at-33rd-degree-conference.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABQXs6eyp7ImA9WhNbEkk.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-1967202161208539320</id><published>2013-01-15T02:29:00.000-08:00</published><updated>2013-01-15T02:29:10.513-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-15T02:29:10.513-08:00</app:edited><title>Welcome to RebelLabs!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
In ZeroTurnaround we just launched a new page with awesome content collected in one place. &lt;a href="http://zeroturnaround.com/rebellabs/"&gt;RebelLabs&lt;/a&gt; hosts very nicely designed documents with interesting content produced by &lt;a href="http://zeroturnaround.com/rebellabs/about-us/"&gt;ZT engineers&lt;/a&gt;.
&lt;br /&gt;&lt;/div&gt;
My favorites so far are the reports on &lt;a href="http://zeroturnaround.com/rebellabs/devs/scala-2013-a-pragmatic-guide-to-scala-adoption-in-your-java-organization/"&gt;Scala adoption&lt;/a&gt; and &lt;a href="http://zeroturnaround.com/rebellabs/devs/developer-productivity-report-2012/"&gt;Developers Productivity Report from 2012&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/SEOOY5G8tp0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/1967202161208539320/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=1967202161208539320" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1967202161208539320?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1967202161208539320?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/SEOOY5G8tp0/welcome-to-rebellabs.html" title="Welcome to RebelLabs!" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2013/01/welcome-to-rebellabs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EASHgyeip7ImA9WhNUFk4.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-56778659195563867</id><published>2013-01-08T02:01:00.002-08:00</published><updated>2013-01-08T02:07:29.692-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-08T02:07:29.692-08:00</app:edited><title>Java EE 7 Public Draft was published. I demand Java EE Light Profile!</title><content type="html">On December 20, 2012 a &lt;a href="http://java.net/projects/javaee-spec/downloads"&gt;public draft of Java EE 7&lt;/a&gt; has been uploaded. From the first sight, the new spec is rather an improvement of the subsequent specs in Java EE 6.

For instance, I really like the &lt;a href="http://java.net/projects/javaee-spec/downloads/download/WebProfilePublicDraft.pdf"&gt;Web Profile&lt;/a&gt; idea. But is is a shame that it wasn't a part of Java EE 6 Web Profile.

&lt;blockquote&gt;The Web Profile is targeted at developers of modern web applications&lt;/blockquote&gt;

IMO, most of the modern web applications make use of REST. Or at least this is my perception. In Rails world, AFAIK, violating REST principle is a subject for brutal prosecution by the colleagues :)

Luckily Java EE 7 fixes that mistake and JAX-RS specification is now a part of Web Profile. 

&lt;blockquote&gt;Targeting “modern” web applications then implies offering a reasonably 
complete stack, composed of standard APIs, and capable out-of-the-box of 
addressing the needs of a large class of web applications.&lt;/blockquote&gt;
&lt;p&gt;
OK, now you can really develop "modern" web apps with Web Profile, but...
&lt;/p&gt;&lt;p&gt;
&lt;blockquote&gt;In terms of completeness, the Web Profile offers a complete stack, with 
technologies addressing presentation and state management.  (JavaServer Faces, 
JavaServer Pages), core web container funtionality (Servlet), business logic 
(Enterprise JavaBeans Lite), transactions (Java Transaction API), persistence 
(Java Persistence API) and more.&lt;/blockquote&gt;
&lt;/p&gt;&lt;p&gt;
Sounds like redundancy to me. For instance, why would you need EJBs there? If CDI supported interceptors properly there wouldn't be a need for EJBs in that sense. Or, JSF? Well, I'm just not a fan of that. 
&lt;/p&gt;&lt;p&gt;
What I'm trying to say here is that since for compatibility reasons there wouldn't be possible to drop specs from Web Profile, maybe it is now time to create a "Light Profile"? A minimalistic set of Java EE specs that would be sufficient for building &lt;b&gt;&lt;i&gt;modern&lt;/i&gt;&lt;/b&gt; web applications.
&lt;/p&gt;&lt;p&gt;
Of course the term is a bit foggy - what should we consider a &lt;i&gt;modern web application&lt;/i&gt;. These days it is a combination of a REST backend and UI technologies such as HTML5 and JavaScript. My logic says that since Java EE doesn't specify UI technology then the main specification that required is JAX-RS and the complementary specifications to support transactions (JTA/JTS), persistance (JPA), and dependency injection (CDI). Of course, there are some nice complementary specifications such as Bean Validation and Java API for JSON processing. But I would definitely drop JSF and EJBs for sure.
&lt;/p&gt;&lt;p&gt;
This would bring the containers like Tomcat and Jetty even closer to the spec and who knows maybe one day we will have a Java EE "Jetty Profile", why not :)
&lt;/p&gt;


&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/zkkoMXlBhfk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/56778659195563867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=56778659195563867" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/56778659195563867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/56778659195563867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/zkkoMXlBhfk/java-ee-7-public-draft-was-published-i.html" title="Java EE 7 Public Draft was published. I demand Java EE Light Profile!" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2013/01/java-ee-7-public-draft-was-published-i.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04FQno5fip7ImA9WhNQFE8.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-7861995555621336040</id><published>2012-11-18T15:40:00.001-08:00</published><updated>2012-11-20T07:38:33.426-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-20T07:38:33.426-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tools" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="xpdays" /><category scheme="http://www.blogger.com/atom/ns#" term="jenkins" /><category scheme="http://www.blogger.com/atom/ns#" term="liverebel" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><category scheme="http://www.blogger.com/atom/ns#" term="artifactory" /><category scheme="http://www.blogger.com/atom/ns#" term="continuous delivery" /><title>XPDays Kiev: Continuous Delivery Pipeline With Jenkins, Artifactory And LiveRebel</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://xpdays.com.ua/"&gt;XPDays in Kiev&lt;/a&gt; was a success! Great crowd, interesting talks and fruitful discussions, socializing included.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;a href="http://1.bp.blogspot.com/-XSEbIpwDYkc/UKlw02K6xMI/AAAAAAAAQTQ/jGGJFlE0F34/s1600/xpdays-badge.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-XSEbIpwDYkc/UKlw02K6xMI/AAAAAAAAQTQ/jGGJFlE0F34/s320/xpdays-badge.jpg" width="256" /&gt;&lt;/a&gt;Embedded are the slides from by &lt;b&gt;import continuous.delivery.*&lt;/b&gt; talk which was surprisingly well received and it seems a lot of people are looking for ways to release and deploy continuously, even in the large organizations.&lt;/div&gt;
&lt;br /&gt;
There are numerous different tools that could be used to organize the continuous delivery pipeline. The pipeline that I've demonstrated was built with &lt;a href="http://jenkins-ci.org/"&gt;Jenkins&lt;/a&gt;, &lt;a href="http://www.jfrog.com/home/v_artifactorypro_overview"&gt;Artifactory&lt;/a&gt; (Pro) and &lt;a href="http://liverebel.com/"&gt;LiveRebel&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I'm not super happy with the &lt;a href="https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin"&gt;build pipeline plugin&lt;/a&gt; in &lt;b&gt;Jenkins&lt;/b&gt;. In the talk I had to spend time explaining why the flow is organized the way it is and why the build pipeline plugin behaves the way it behaves. It is just buggy... I should find time to fix it.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.jfrog.com/home/v_artifactorypro_overview"&gt;Arifactory's Pro&lt;/a&gt; version was just primarily because of the fact that artifact promotion feature is a Pro version and some of the REST APIs that I wanted to use were under Pro license. There are alternatives, but with Artifactory it was just much easier to show the relevant stuff.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://liverebel.com/"&gt;LiveRebel&lt;/a&gt; - well, there's no real alternative to it. The attendees were really impressed how easy it is to deploy via LiveRebel and oversee the target environment.&lt;br /&gt;
&lt;br /&gt;
The cool part is that all the tools integrate well via the REST API (or CLI) and you can build a very flexible pipeline if this kind of integration is available. What I also realized is that although everything can be automated in the pipeline, it shouldn't get on your way still - you should be able to go into any step and re-execute if needed.&lt;br /&gt;
&lt;br /&gt;
Another critical feature is the rollback functionality. It is not just that you select the previous version of the app if something goes wrong. There's more things you have to keep in mind when organizing the pipeline (I'm not revealing it now :P).&lt;br /&gt;
&lt;br /&gt;
Enjoy the slides! :)&lt;br /&gt;
&lt;br /&gt;&lt;center&gt;
&lt;table width="600"&gt;&lt;tr&gt;&lt;td&gt;&lt;script async="async" class="speakerdeck-embed" data-id="5e58f3e01402013077d112313d1a82a3" data-ratio="1.2994923857868" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/center&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/HLEkkIYBadE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/7861995555621336040/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=7861995555621336040" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7861995555621336040?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7861995555621336040?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/HLEkkIYBadE/xpdays-kiev-continuous-delivery.html" title="XPDays Kiev: Continuous Delivery Pipeline With Jenkins, Artifactory And LiveRebel" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-XSEbIpwDYkc/UKlw02K6xMI/AAAAAAAAQTQ/jGGJFlE0F34/s72-c/xpdays-badge.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/11/xpdays-kiev-continuous-delivery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcGQnY7eCp7ImA9WhNREk0.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-5109702135675427431</id><published>2012-11-02T17:22:00.001-07:00</published><updated>2012-11-06T03:40:23.800-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-06T03:40:23.800-08:00</app:edited><title>Do you really get your IDE?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
This is bit like a philosophical post. Just some thoughts regarding our perception of developer tooling.&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
First - a question. Which IDE do you use? Eclipse? NetBeans? IntelliJ IDEA? Visual Studio? Vim? Emacs? Yeah, really - Vim counts as an IDE as long as you can configure it to behave like one. Or maybe Sublime Text, a really awesome text editor?&lt;br /&gt;
&lt;br /&gt;
Second question. Do you leverage the full power of your favourite IDE/editor?&lt;br /&gt;
&lt;br /&gt;
Mostly, people will say that the &lt;b&gt;just use&lt;/b&gt; the IDE and I haven't really seen many people leveraging the power of refactorings, shortcuts, other awesome IDE features that are out there. Why? Lazy?&amp;nbsp;Careless? Neglectful?&lt;br /&gt;
&lt;br /&gt;
I was reading a nice theory article &lt;a href="http://osteele.com/posts/2004/11/ides"&gt;The IDE Divide&lt;/a&gt;, which is already 8 years old. The point of the article is that it points out two extremes among the developers: &lt;b&gt;language mavens&lt;/b&gt; and &lt;b&gt;tooling mavens&lt;/b&gt;. Language mavens are those who case about the deepest nuances in the programming languages and don't really want to rely on tools (or just don't have time to explore the features of the tools). Tooling mavens are the ones who are obsessed with learning (and creating?) the tools and not spending as much time discovering the mysteries of language features. The article also mentioned that it is enormously hard to be both, the language maven and the tools maven at the same time, since the time for learning all this stuff is limited.&lt;br /&gt;
&lt;br /&gt;
But generally, I think, knowing the properties language and runtime is more important as it is the produced code that will eventually run on the system. The tools are just used to create the programs. However, I rather consider myself a "tooling maven" type of developer. Not that I don't care about the languages, no. It is just the interest shift towards tools for me.&lt;br /&gt;
&lt;br /&gt;
Despite the above, I noticed something (or it is just my perception). When a the new-born programmer starts, you will first try to reach the comfortable level of using the language. Once you're successful, there comes time for you to write the programs more effectively - faster, using shortcuts… click, click, click. This is where the tooling kicks in. Eventually, you start appreciate those nice features of your IDE that help you to write the code more effectively. The next stage is when you realize that actually you do not write code as much as you read it, and then you will start to appreciate the features that help you to navigate the code, analyze it, maybe refactor it. Language becomes a bit unimportant.&lt;br /&gt;
&lt;br /&gt;
I was chatting with &lt;a href="http://jlaskowski.blogspot.com/"&gt;Jacek Laskowski&lt;/a&gt; one day and he asked an interesting question: &lt;i&gt;"If you're given awesome tools/components/frameworks to work with, would you really care about which programming language to use?"&lt;/i&gt;. Really good question. I wouldn't care, I guess. You will learn the language anyway. Or you will learn the tooling anyway once you're comfortable with the language of your choice, because normally you would like to be more effective (this is my perception of curious programmers, I hope you &lt;i&gt;are&lt;/i&gt; a curious programmer).&lt;br /&gt;
&lt;br /&gt;
What do you feel when a colleague next to you just moves around the project like a pro and finds everything he needs just in fractions of a second, and types with shortcuts creating new statements with just a few strokes? And then you try to type: &lt;i&gt;'p' 'u' 'b' 'l' 'i' 'c' '_' 's' 't' 'a' 't' 'i' 'c' '_' 'v' 'o' 'i' 'd' '_' 'm' 'a' 'i' 'l'&lt;/i&gt; [oooops! a typo!]. Frustrating…&lt;br /&gt;
&lt;br /&gt;
It is every so often I was keeping myself back from screaming at my colleague "just Ctrl+Shift+E !!!!" while the team mate was looking for the class in the project tree the name of which he did not remember.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Modern IDEs have revolutionized the way in which we are able to work with the code. Sadly, most programmers are held back by some mysterious myth that if you learn the tools too much you're doomed as a programmer as you start depending on those tools. Don't be held back by such fears! Go &lt;a href="http://arhipov.blogspot.com/2011/06/whats-cool-in-intellijidea-part-i.html"&gt;learn&lt;/a&gt; &lt;a href="http://arhipov.blogspot.com/2011/07/whats-cool-in-intellijidea-part-ii-live.html"&gt;some&lt;/a&gt; &lt;a href="http://arhipov.blogspot.com/2011/08/whats-cool-in-intellijidea-part-iii.html"&gt;tooling&lt;/a&gt; &lt;a href="http://arhipov.blogspot.com/2012/09/maven-support-in-intellij-idea.html"&gt;instead&lt;/a&gt; - it will save you some time later!&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/pfQBSjA43-M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/5109702135675427431/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=5109702135675427431" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5109702135675427431?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5109702135675427431?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/pfQBSjA43-M/do-you-really-get-your-ide.html" title="Do you really get your IDE?" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/11/do-you-really-get-your-ide.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYARn48cCp7ImA9WhNSEE4.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-8758466784290237959</id><published>2012-10-23T16:15:00.003-07:00</published><updated>2012-10-23T16:15:47.078-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-23T16:15:47.078-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>Do you really get classloaders?</title><content type="html">&lt;a href="http://jrebel.com"&gt;JRebel&lt;/a&gt; team has produced a nice-looking &lt;a href="http://zeroturnaround.com/labs/rebel-labs-tutorial-do-you-really-get-classloaders/"&gt;PDF about Java classloaders&lt;/a&gt;. This should be a very nice read for everyone who wants to know more about Java platform fundamentals.
&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/5sdIMuXXM_Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/8758466784290237959/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=8758466784290237959" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8758466784290237959?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8758466784290237959?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/5sdIMuXXM_Y/do-you-really-get-classloaders.html" title="Do you really get classloaders?" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/10/do-you-really-get-classloaders.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CSXw_fCp7ImA9WhJbFEU.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-1243353743749189823</id><published>2012-09-24T00:42:00.000-07:00</published><updated>2012-09-24T04:42:48.244-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-24T04:42:48.244-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="intellij" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="apache camel" /><category scheme="http://www.blogger.com/atom/ns#" term="screencast" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title>Maven support in IntelliJ IDEA (screencast)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;p&gt;The screencast demonstrates Maven integration features available in IntelliJ IDEA. Apache Camel maven archetype is used to generate the application. The main features are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Project setup automation and automatic dependency resolution&lt;/li&gt;
&lt;li&gt;Editor assistance and autocompletion&lt;/li&gt;
&lt;li&gt;Refactorings&lt;/li&gt;
&lt;li&gt;Dependency graph&lt;/li&gt;
&lt;li&gt;Lifecycle management using the tooling window&lt;/li&gt;
&lt;/ul&gt;


&lt;center&gt;
&lt;object data="http://tv.jetbrains.net/flowplayer/flowplayer-3.2.10.swf" height="600" id="_fp_0.04471339425072074" name="player" type="application/x-shockwave-flash" width="800"&gt;    &lt;param value="true" name="allowfullscreen"/&gt;    &lt;param value="always" name="allowscriptaccess"/&gt;    &lt;param value="transparent" name="wmode"/&gt;    &lt;param value="high" name="quality"/&gt;    &lt;param name="movie" value="http://tv.jetbrains.net/flowplayer/flowplayer-3.2.10.swf" /&gt;    &lt;param value="config=%7B%22playlist%22%3A%5B%7B%22autoPlay%22%3Afalse%2C%22baseUrl%22%3A%22http%3A//tv.jetbrains.net%22%2C%22autoBuffering%22%3Atrue%2C%22scaling%22%3A%22orig%22%2C%22url%22%3A%22http%3A//tv.jetbrains.net/sites/default/files/videos/converted/Maven-with-IntelliJ-IDEA.mp4%22%7D%5D%2C%22plugins%22%3A%7B%22controls%22%3A%7B%22callType%22%3A%22default%22%2C%22stop%22%3Atrue%2C%22url%22%3A%22http%3A//tv.jetbrains.net/flowplayer/flowplayer.controls-3.2.8.swf%22%7D%2C%22viral%22%3A%7B%22callType%22%3A%22default%22%2C%22share%22%3Afalse%2C%22url%22%3A%22http%3A//tv.jetbrains.net/flowplayer/flowplayer.viralvideos-3.2.9.swf%22%2C%22email%22%3Afalse%7D%2C%22dock%22%3A%7B%22right%22%3A15%2C%22horizontal%22%3Afalse%2C%22width%22%3A%227pct%22%2C%22autoHide%22%3Atrue%7D%7D%2C%22clip%22%3A%7B%22pageUrl%22%3A%22http%3A//tv.jetbrains.net/videocontent/maven-support-in-intellij-idea%22%2C%22autoPlay%22%3Afalse%2C%22baseUrl%22%3A%22http%3A//tv.jetbrains.net%22%2C%22autoBuffering%22%3Atrue%2C%22url%22%3A%22http%3A//tv.jetbrains.net/sites/default/files/videos/converted/Maven-with-IntelliJ-IDEA.mp4%22%2C%22scaling%22%3A%22orig%22%7D%7D" name="flashvars"/&gt;&lt;/object&gt;
&lt;/center&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/XJ2qQgvC7-A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/1243353743749189823/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=1243353743749189823" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1243353743749189823?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1243353743749189823?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/XJ2qQgvC7-A/maven-support-in-intellij-idea.html" title="Maven support in IntelliJ IDEA (screencast)" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/09/maven-support-in-intellij-idea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGQH44fCp7ImA9WhJbEE4.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-7733897765883269302</id><published>2012-09-18T23:04:00.000-07:00</published><updated>2012-09-18T23:05:21.034-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-18T23:05:21.034-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="scala" /><title>A great read on Scala</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
A great article has been published at &lt;a href="http://zeroturnaround.com/blog/"&gt;ZeroTurnaround's blog&lt;/a&gt;: &lt;a href="http://zeroturnaround.com/labs/scala-2013-a-pragmatic-guide-to-scala-adoption-in-your-java-organization/"&gt;Scala 2013: A Pragmatic Guide to Scala Adoption in Your Java Organization&lt;/a&gt;. You can download it as a &lt;a href="http://pages.zeroturnaround.com/Scala_Sept2013_scala-report.html"&gt;PDF&lt;/a&gt; (which looks really cool!). The nice part is that it includes an interview with &lt;a href="https://twitter.com/odersky"&gt;Martin Odersky&lt;/a&gt; and quotes by &lt;a href="https://twitter.com/jsuereth"&gt;Josh Suereth&lt;/a&gt;.
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/RPhFGly0kXs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/7733897765883269302/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=7733897765883269302" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7733897765883269302?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7733897765883269302?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/RPhFGly0kXs/a-great-read-on-scala.html" title="A great read on Scala" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/09/a-great-read-on-scala.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BRHo4fyp7ImA9WhJUFUo.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-5600771433412749543</id><published>2012-09-13T14:14:00.001-07:00</published><updated>2012-09-13T14:15:55.437-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-13T14:15:55.437-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="JavaZone2012" /><title>JavaZone 2012: Taming Java Agents</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
At JavaZone I've presented a talk called &lt;i&gt;&lt;b&gt;Taming Java Agents&lt;/b&gt;. &lt;/i&gt;It is not about the distributed computing or messaging as the title might imply. It is about the tools that exercise &lt;b&gt;-javaagent&lt;/b&gt; JVM argument to hook into class loading process&lt;i&gt;&amp;nbsp;&lt;/i&gt;in order to perform some necessary evil to the bytecode. The tools can do amazing things to the application by rewriting the bytecode - &lt;a href="http://appdynamics.com/"&gt;performance&lt;/a&gt; &amp;amp; &lt;a href="http://plumbr.eu/"&gt;memory&lt;/a&gt; monitoring, &lt;a href="http://zeroturnaround.com/software/jrebel/"&gt;class reloading&lt;/a&gt;, &lt;a href="http://www.jboss.org/byteman"&gt;tracing&lt;/a&gt;, etc.&amp;nbsp;I think this is an interesting topic in general - the tools do not exist for no reason.&lt;br /&gt;
&lt;br /&gt;
Here are the slides and the video from the talk:&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" height="421" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/14260031" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" width="512"&gt; &lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://player.vimeo.com/video/49298212" width="600" height="337" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;
&lt;/center&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/QuZ0VLxcjGM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/5600771433412749543/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=5600771433412749543" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5600771433412749543?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5600771433412749543?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/QuZ0VLxcjGM/javazone-2012-taming-java-agents.html" title="JavaZone 2012: Taming Java Agents" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/09/javazone-2012-taming-java-agents.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08AR345eip7ImA9WhJQE0o.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-1108731158269158225</id><published>2012-07-26T15:19:00.002-07:00</published><updated>2012-07-26T23:50:46.022-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-26T23:50:46.022-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ide" /><category scheme="http://www.blogger.com/atom/ns#" term="intellij" /><category scheme="http://www.blogger.com/atom/ns#" term="practices" /><category scheme="http://www.blogger.com/atom/ns#" term="gradle" /><category scheme="http://www.blogger.com/atom/ns#" term="version control" /><category scheme="http://www.blogger.com/atom/ns#" term="eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="netbeans" /><category scheme="http://www.blogger.com/atom/ns#" term="twitter" /><category scheme="http://www.blogger.com/atom/ns#" term="maven" /><title>IDE Project Files In Version Control - Yes or No? Of Course, Not!</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;i style="text-align: left;"&gt;&lt;b&gt;NB!&amp;nbsp;&lt;/b&gt;This topic is mostly related to Java projects. The situation might be a little different in case of other technologies and IDEs.&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;i style="text-align: left;"&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Just recently I had some discussions with the clients who were claiming that they keep IDE project files in version control system hence they avoid any changes to those files. For reference, those are Eclipse generated &lt;b&gt;.project&lt;/b&gt; and &lt;b&gt;.classpath&lt;/b&gt;. From my point of view it is a bad practice by all means, however I usually prefer to collect some information on the topic before I say it loudly. So I asked from my G+ and Twitter followers, &lt;a href="https://twitter.com/antonarhipov/status/228395791423770624"&gt;IDE project files in version control - Yes/No?&lt;/a&gt;&amp;nbsp;Surprisingly, I've got quite a number of responses, so I decided to summarize the information as a blog post.&lt;/div&gt;
&lt;br /&gt;
Basically, the answer to this question isn't binary, yes or no, but it also could be "yes, but... " or "no, if...". So there might be some argument why someone prefers one way or another.&lt;br /&gt;
&lt;br /&gt;
The vast majority of the answers is "No, no, noooooooo!! Never!". And just a couple of answers were "yes" with some weak arguments of why someone should keep those files in version control.&lt;br /&gt;
&lt;br /&gt;
Here are some yes answers first.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-A0g7P4mL0Kg/UBGxkaSkkrI/AAAAAAAAQFk/lrzhMA_VjjQ/s1600/twitter-yes-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-A0g7P4mL0Kg/UBGxkaSkkrI/AAAAAAAAQFk/lrzhMA_VjjQ/s1600/twitter-yes-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Bad stuff. Seems that the team isn't really competent with the tools. The project should be easy to setup and why on earth I should press 100500 buttons to setup a project. If this is the case, the first thing that team lead should do, is to simplify the project structure, setup and build process. No excuses there.&lt;br /&gt;
&lt;br /&gt;
Yeah, yeah, I can already hear some arguments like "but we have a complex project" or "this is the way our setup is done". Bullsh*t!
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-IR6WvowUoM8/UBI5W7XqpLI/AAAAAAAAQIM/jxNwR7JkyHM/s1600/petr1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-IR6WvowUoM8/UBI5W7XqpLI/AAAAAAAAQIM/jxNwR7JkyHM/s1600/petr1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
OK, there is some optimization for the setup, IDE specific though. If all the team members use the same setup, it might even make sense for those who want to keep hands off the console.&lt;br /&gt;
&lt;br /&gt;
Here's another one:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-dcz9E9geKAw/UBGzHMa3uUI/AAAAAAAAQFs/W3hZ9ypInlI/s1600/twitter-yes-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-dcz9E9geKAw/UBGzHMa3uUI/AAAAAAAAQFs/W3hZ9ypInlI/s1600/twitter-yes-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
"Specific Eclipse plugins" - yeah! that's is actually an argument for &lt;b&gt;not&lt;/b&gt; keeping the files in version control! Eclipse plugins usually modify &lt;b&gt;.project&lt;/b&gt; files as they add a "nature" or any other project specific settings to the configuration. And actually, IntelliJ does the same, but (let me bash to tools a bit) IntelliJ can suggest the settings as you open a project from scratch. And with Eclipse, you have to do that manually. What if your colleague uses some awesome eclipse plugin that makes modifications to &lt;b&gt;.project &lt;/b&gt;file, and you hate that plugin and do not want to install it, and the&lt;b&gt; .project &lt;/b&gt;file is in version control? Here's just a simple example that you could see while exporting a project with existing project files:&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-8XfAbM_6Sps/UBG2EX80gVI/AAAAAAAAQF0/4Y8GdLow54E/s1600/eclipse-example-error.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="52" src="http://1.bp.blogspot.com/-8XfAbM_6Sps/UBG2EX80gVI/AAAAAAAAQF0/4Y8GdLow54E/s640/eclipse-example-error.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is so annoying to resolve this kind of problems. And all you want to do is just to open the project and proceed with your normal work.&lt;br /&gt;
&lt;br /&gt;
Here's more:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-9UXuYNNZdY4/UBG4l0qfY-I/AAAAAAAAQF8/Eeo2qg3ZOxo/s1600/twitter-yes-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-9UXuYNNZdY4/UBG4l0qfY-I/AAAAAAAAQF8/Eeo2qg3ZOxo/s1600/twitter-yes-3.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Currently, I use IntelliJ and the rest of the team uses Eclipse. And I absolutely do not care if they put the project files into version control, because I will import it into my IDE in two clicks anyway. So the assumption that &lt;i&gt;"absolutely yes, given that the team is working with the same IDEs"&lt;/i&gt; is wrong, and no viable argument here as well.&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
However, here we have some much more interesting ideas:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-e2WO1xc63pI/UBG5lFCrBfI/AAAAAAAAQGE/D_vS9pbsUss/s1600/twitter-yesno-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-e2WO1xc63pI/UBG5lFCrBfI/AAAAAAAAQGE/D_vS9pbsUss/s1600/twitter-yesno-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Wow, this is really interesting one - "those that define formatting or source code". Indeed! In cases when you work on varions projects for different clients, the requirements and code styles might be quite different and it makes sense even to keep this kind of files in version control, so you can share it with the team and restore the code style settings if you lost them. Good point here!&lt;/div&gt;
&lt;br /&gt;
However, you can probably see the vector of my post now.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-dbMU8wR1prk/UBG7QpYkx9I/AAAAAAAAQGc/Uwf_UmkXoQ0/s1600/maven2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-dbMU8wR1prk/UBG7QpYkx9I/AAAAAAAAQGc/Uwf_UmkXoQ0/s1600/maven2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-3UGbrrtNwbk/UBG7RLxvq1I/AAAAAAAAQGg/sWb_KuZIBrM/s1600/maven3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-3UGbrrtNwbk/UBG7RLxvq1I/AAAAAAAAQGg/sWb_KuZIBrM/s1600/maven3.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-G2Xtw3WZ8EI/UBG7Ox042iI/AAAAAAAAQGU/z0rEZUS94_A/s1600/maven1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-G2Xtw3WZ8EI/UBG7Ox042iI/AAAAAAAAQGU/z0rEZUS94_A/s1600/maven1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-43tQeUIZxig/UBG-1kzLYFI/AAAAAAAAQG8/YRzJqSa3qSA/s1600/maven4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-43tQeUIZxig/UBG-1kzLYFI/AAAAAAAAQG8/YRzJqSa3qSA/s1600/maven4.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
So the point is, IDEs support Maven quite well, so why on earth I would need to keep the IDE settings in version control if we already have what we need: &lt;b&gt;pom.xml&lt;/b&gt;. IntelliJ and NetBeans cope with that quite well, and Eclipse also, if you use &lt;a href="http://www.jboss.org/tools/"&gt;JBoss Tools&lt;/a&gt;.&lt;/div&gt;
&lt;br /&gt;
But what if I'm a Maven hater? (I really am). Here's an interesting conversation:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ugMEYeGhIGU/UBG8piW4u_I/AAAAAAAAQG0/gjak2U8yxWk/s1600/maven-etc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ugMEYeGhIGU/UBG8piW4u_I/AAAAAAAAQG0/gjak2U8yxWk/s1600/maven-etc.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Oh sure, Gradle that is! Well, the IDE support isn't there yet. Luckily, STS provides a nice Gradle plugin for Eclipse, but the support for IntelliJ and NetBeans isn't quite there yet.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: white;"&gt;However, my claim is that Maven or Gradle isn't the prerequisite to avoid the project files in version control. The real prerequisite is the simple setup of you project and a clean structure, so that importing the project is just a couple of clicks. Then you can cope with any kind of project, even if it doesn't contain pom.xml.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
And here's what most of them say about the topic:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-By8MgZlVC7A/UBG_lU444fI/AAAAAAAAQHE/gmtUs18YI2k/s1600/yes1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-By8MgZlVC7A/UBG_lU444fI/AAAAAAAAQHE/gmtUs18YI2k/s1600/yes1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-aQLwAA5rkIs/UBG_mLkzFlI/AAAAAAAAQHM/A2DxBwrIdTI/s1600/yes2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-aQLwAA5rkIs/UBG_mLkzFlI/AAAAAAAAQHM/A2DxBwrIdTI/s1600/yes2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-YExWA45cX48/UBG_nVws-_I/AAAAAAAAQHQ/-bak9eGwNmA/s1600/yes3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-YExWA45cX48/UBG_nVws-_I/AAAAAAAAQHQ/-bak9eGwNmA/s1600/yes3.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-MEAN6YVzYzA/UBHX_y76kDI/AAAAAAAAQHc/KSe03CuIPiw/s1600/no1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-MEAN6YVzYzA/UBHX_y76kDI/AAAAAAAAQHc/KSe03CuIPiw/s1600/no1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ovS65GXhIXI/UBHYA9t-G5I/AAAAAAAAQHk/j47d_tIKI-0/s1600/no2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ovS65GXhIXI/UBHYA9t-G5I/AAAAAAAAQHk/j47d_tIKI-0/s1600/no2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-O4OFHgMDD4Q/UBHYBl0t8HI/AAAAAAAAQHo/fzsxgHfxvE4/s1600/no3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-O4OFHgMDD4Q/UBHYBl0t8HI/AAAAAAAAQHo/fzsxgHfxvE4/s1600/no3.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-hEFpTKJJfnM/UBHYCF6Q5kI/AAAAAAAAQHw/I5iZUqMv-pg/s1600/no4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-hEFpTKJJfnM/UBHYCF6Q5kI/AAAAAAAAQHw/I5iZUqMv-pg/s1600/no4.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-picue_uDPN4/UBHYDJqkB5I/AAAAAAAAQIE/n7OO5s4jo3g/s1600/no6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-picue_uDPN4/UBHYDJqkB5I/AAAAAAAAQIE/n7OO5s4jo3g/s1600/no6.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Myself, I have tried both ways - keeping the project files in version control and not checking them in, and my take is that under no circumstances it is a good idea to check the project files in. Again, a much better solution is to keep your project structure clean and simple, which might be harder than to check the files into version control, but much more beneficial on the long run.&lt;/div&gt;
&lt;br /&gt;
Thanks everyone for the input! Take care...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/1wxKa_B5p_0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/1108731158269158225/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=1108731158269158225" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1108731158269158225?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1108731158269158225?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/1wxKa_B5p_0/ide-project-files-in-version-contro-yes.html" title="IDE Project Files In Version Control - Yes or No? Of Course, Not!" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-A0g7P4mL0Kg/UBGxkaSkkrI/AAAAAAAAQFk/lrzhMA_VjjQ/s72-c/twitter-yes-1.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/07/ide-project-files-in-version-contro-yes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYCQ3c_cSp7ImA9WhJRGE8.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-7544192891014100231</id><published>2012-07-20T15:42:00.000-07:00</published><updated>2012-07-20T15:42:42.949-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-20T15:42:42.949-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><category scheme="http://www.blogger.com/atom/ns#" term="JavaZone2012" /><title /><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://jz12.java.no/news" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://2.bp.blogspot.com/-kErGg9_SAPk/UAndesZYpYI/AAAAAAAAQFQ/bZBqokN2Jg8/s200/splashlogo.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
I'm &lt;a href="http://javazone.no/incogito10/events/JavaZone%202012/sessions#f3b272f5-76a0-4588-80db-d426ad0e4934"&gt;speaking&lt;/a&gt; at JavaZone again this year. Hope to give an overview of javaagent and Instrumentation API with some referrals to the interesting use cases.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/kFT3c_MdVtM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/7544192891014100231/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=7544192891014100231" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7544192891014100231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7544192891014100231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/kFT3c_MdVtM/im-speaking-at-javazone-again-this-year.html" title="" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-kErGg9_SAPk/UAndesZYpYI/AAAAAAAAQFQ/bZBqokN2Jg8/s72-c/splashlogo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/07/im-speaking-at-javazone-again-this-year.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4BQ309fyp7ImA9WhVbFkg.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-5381302533723063753</id><published>2012-05-08T14:52:00.002-07:00</published><updated>2012-06-02T09:02:32.367-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-02T09:02:32.367-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="jrebel" /><category scheme="http://www.blogger.com/atom/ns#" term="confess_2012" /><title>Con-FESS 2012, Day 2</title><content type="html">&lt;p&gt;I had great fun speaking at Con-FESS today. Here are my &lt;a href="http://www.slideshare.net/arhan/why-doesnt-java-has-instant-turnaround-confess-2012"&gt;slides&lt;/a&gt; for the &lt;i&gt;Why Doesn't Java Have Instant Turnaround&lt;/i&gt; talk. The internet connection was great so I even managed to make a &lt;a href="http://zeroturnaround.com/software/jrebel/remoting/"&gt;JRebel Remoting&lt;/a&gt; demo with &lt;a href="http://jelastic.com"&gt;Jelastic PaaS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After that, we had a great time investigating &lt;a href="https://github.com/griffon"&gt;Griffon&lt;/a&gt; framework internals with &lt;a href="https://twitter.com/#!/aalmiray"&gt;Andres Almiray&lt;/a&gt;. Although it is quite tricky to update desktop applications on the fly, it seems it is still possible and Griffon will be able to leverage JRebel facilities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/#!/pniederw"&gt;Peter Niederwieser&lt;/a&gt; talked about &lt;a href="http://2012.con-fess.com/sessions/-/details/157/Gradle-in-the-Enterprise"&gt;Gradle in the enterprise&lt;/a&gt;. Gradle is just about to go 1.0 which is great. The tooling is getting better and there are very nice features in Gradle that simplify build procedure and build script implementation - true incremental builds, autowiring, dsl extensions, etc. What is really missing at the moment is the stable way to migrate Maven projects to Gradle (there are some scripts, but these aren't quite stable) and the native release plugin. It is quite interesting that Gradle has implemented its own dependency management solution and isn't based on Ivy any more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/#!/darthvader42"&gt;Stefan Armbruster&lt;/a&gt; talked about using Grails with Neo4j graph database. It seems that it doesn't integrate that smoothly yet - some minor glitches still exist, but nevertheless it was used for a production application.&lt;/p&gt;

&lt;center&gt;
&lt;div style="width:425px" id="__ss_12846487"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/arhan/why-doesnt-java-has-instant-turnaround-confess-2012" title="Why Doesn&amp;#39;t Java Have Instant Turnaround - Con-FESS 2012" target="_blank"&gt;Why Doesn&amp;#39;t Java Has Instant Turnaround - Con-FESS 2012&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/12846487" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank"&gt;PowerPoint&lt;/a&gt; from &lt;a href="http://www.slideshare.net/arhan" target="_blank"&gt;Anton Arhipov&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;
&lt;/center&gt;

The video recording of the talk is available at Con-FESS website: &lt;a href="http://2012.con-fess.com/sessions/-/details/139/Why-doesnt-Java-have-instant-turnaround"&gt;http://2012.con-fess.com/sessions/-/details/139/Why-doesnt-Java-have-instant-turnaround&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/AqjB7LXXlVA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/5381302533723063753/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=5381302533723063753" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5381302533723063753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/5381302533723063753?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/AqjB7LXXlVA/con-fess-2012-day-2.html" title="Con-FESS 2012, Day 2" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/05/con-fess-2012-day-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIGSHczfCp7ImA9WhVVFE8.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-3568647309237624032</id><published>2012-05-07T13:53:00.001-07:00</published><updated>2012-05-07T14:35:29.984-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-07T14:35:29.984-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="confess_2012" /><title>Con-FESS 2012, Day 1</title><content type="html">&lt;p&gt;Although the &lt;a href="http://2012.con-fess.com/"&gt;Con-FESS conference&lt;/a&gt; attendance doesn't seem to be very high, around 200 people, it still was a good idea to come here. Look at this:&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-L1WUQi50GmY/T6gqAFgrPqI/AAAAAAAAPKs/4PeXP2OhXD4/s1600/IMAG0850.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="http://2.bp.blogspot.com/-L1WUQi50GmY/T6gqAFgrPqI/AAAAAAAAPKs/4PeXP2OhXD4/s400/IMAG0850.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Nice view, eh? :)&lt;/p&gt;

&lt;p&gt;First, I've attended to keynote talk by Jürgen Höller, &lt;a href="http://2012.con-fess.com/sessions/-/details/153/Enterprise-Java-in-2012-and-Beyond---From-Java-EE-6-to-Cloud-Computing"&gt;Enterprise Java in 2012 and Beyond - From Java EE 6 to Cloud Computing&lt;/a&gt;. The talk was about the current trends towards cloud platforms. Cloud is a hot topic for Java EE 7 these days. The term "cloud" spawns across quite different technologies, not just Java. For instance, alternative datastores are quite popular among quite providers as these allow for better scalability. As the implementations are so different it is quite hard to imagine any reasonable standardization in this area. And even for Java, the vendors agree just on some bits of the standard, like Servlets, for instance. To my mind, the diversity will only grow in the cloud era.&lt;/p&gt;

&lt;p&gt;Also, it will be interesting to see how to tooling will evolve in some time. I'm quite sure that &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt; and &lt;a href="http://www.springsource.com/developer/sts"&gt;STS&lt;/a&gt;, as well as &lt;a href="https://developers.google.com/eclipse/"&gt;Google Eclipse plugin&lt;/a&gt; are aiming for this use case. With JRebel, it is now also &lt;a href="http://zeroturnaround.com/jrebel/remoting"&gt;possible&lt;/a&gt; to update application code in the cloud. I'm quite sure, in near future we will see some new tooling specially designed for the cloud apps but as the diversity is quite high, these tools will most likely be PaaS-specific.&lt;/p&gt;

&lt;p&gt;Next, I've attended the talk about &lt;a href="http://2012.con-fess.com/sessions/-/details/112/The-Groovy-Ecosystem"&gt;Groovy ecosystem&lt;/a&gt; by &lt;a href="https://twitter.com/#!/aalmiray"&gt;Andres Almiray&lt;/a&gt;. It was an overview of the frameworks and libraries build with Groovy and for Groovy: Grails, Griffon, Gaelyk, Caelyf, Gradle, Gant, Codenark, GMetrics, Easyb. Not that much into the details, but a good overview.&lt;/p&gt;

&lt;p&gt;I learned a lot from &lt;a href="http://2012.con-fess.com/sessions/-/details/130/CDI-for-Experts"&gt;Mark Struberg's talk about CDI&lt;/a&gt; and it really terrifies me how complex it might get with all the annotation-based programming model that CDI offers. Especially with the CDI extensions. Especially if people will start use this extensively. It is fine if people could stick with the libraries like &lt;a href="http://myfaces.apache.org/extensions/cdi/"&gt;CODI&lt;/a&gt;, &lt;a href="http://sfwk.org/Seam3"&gt;Seam3&lt;/a&gt;, or &lt;a href="http://wiki.apache.org/incubator/DeltaSpikeProposal"&gt;Apache DeltaSpike&lt;/a&gt;, but the perspective that the annotations are scattered across the source code and the developer can't see the full view at once really frightens me.&lt;/p&gt;

&lt;p&gt;Mark covered the standardization pitfalls as well as the gotchas when writing a CDI-based apps - very informative! He warned us from using @ApplicationScope for the beans as it isn't quite clear how this should work and the application containers can interpret this a bit differently, either for a whole EAR deployment or just for WAR deployment boundaries. It seems he had a lot more information to tell and he didn't fit everything in this talk, but we also had an interesting discussion afterwards. Here's a &lt;a href="http://twitpic.com/9ihqdt"&gt;rage comic&lt;/a&gt; I came up with afterwards :)&lt;/p&gt;

&lt;p&gt;Last, I attended the talk about &lt;a href="http://2012.con-fess.com/sessions/-/details/102/Next-Generation---Systems-Integration-in-the-Cloud-Era"&gt;systems integration of could-based services&lt;/a&gt; by &lt;a href="https://twitter.com/#!/KaiWaehner"&gt;Kai Wähner&lt;/a&gt;. The presentation covered the introduction to Apache Camel and how it was used to integrate with Amazon Web Services and Google App Engine. &lt;/p&gt;

&lt;p&gt;The conference is hosted &lt;a href="http://2012.con-fess.com/location"&gt;in Leogang, a small village not far from Salzburg, in Hotel Krallerhof&lt;/a&gt;. Surrounded with mountains, this place is amazing!&lt;/p&gt;

&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-VW1UZBmdLds/T6g1elogFYI/AAAAAAAAPK8/fSp9yZqaQ7M/s1600/IMAG0849.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="301" width="400" src="http://1.bp.blogspot.com/-VW1UZBmdLds/T6g1elogFYI/AAAAAAAAPK8/fSp9yZqaQ7M/s400/IMAG0849.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/lzM1JKG-6WA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/3568647309237624032/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=3568647309237624032" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3568647309237624032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3568647309237624032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/lzM1JKG-6WA/con-fess-2012-day-1.html" title="Con-FESS 2012, Day 1" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-L1WUQi50GmY/T6gqAFgrPqI/AAAAAAAAPKs/4PeXP2OhXD4/s72-c/IMAG0850.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/05/con-fess-2012-day-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4BQHg9eSp7ImA9WhVXGEg.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-7281532235184742019</id><published>2012-04-19T09:28:00.001-07:00</published><updated>2012-04-19T09:29:11.661-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-19T09:29:11.661-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="bytecode" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><title>Slides: Mastering Java Bytecode</title><content type="html">&lt;center&gt;
&lt;a href="http://www.slideshare.net/arhan/mastering-java-bytecode" title="Mastering Java Bytecode - JAX.de 2012" target="_blank"&gt;Mastering Java Bytecode - JAX.de 2012&lt;/a&gt;&lt;br/&gt;&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/12595662" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/FMtZodrTe7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/7281532235184742019/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=7281532235184742019" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7281532235184742019?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7281532235184742019?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/FMtZodrTe7k/slides-mastering-java-bytecode.html" title="Slides: Mastering Java Bytecode" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/04/slides-mastering-java-bytecode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYGRXk6fSp7ImA9WhVQGEQ.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-1014409677413266750</id><published>2012-04-08T06:24:00.001-07:00</published><updated>2012-04-08T06:35:24.715-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-08T06:35:24.715-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ide" /><category scheme="http://www.blogger.com/atom/ns#" term="intellij" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><title>IntelliJIDEA Tip: Configuration Profiles</title><content type="html">&lt;i&gt;How many plugins do you have installed in your IntelliJIDEA instance? How many of the plugins are actually active? Do you need all the plugins to be active at once?&lt;/i&gt; Thins might be a quite realistic scenario that you have a fairly large number of plugins activated but you need only a some of them to be active while working on some particular project. Unfortunately, there's no such thing in IntelliJ as "configuration profiles" out of the box, so that for each "profile" you could enable only specific features and thus drop some weight of your IDE while working on a specific task. However, the "profiles" can easily be &lt;i&gt;emulated&lt;/i&gt;.

In IntelliJ the settings are stored under &lt;b&gt;USER_HOME/.IntelliJIDEA&lt;i&gt;xx&lt;/i&gt;&lt;/b&gt; folder. There you will find all the settings, plugins, and other stuff related to your current IntelliJ installation. This directory is actually the current "profile" of your IntelliJ installation. In &lt;b&gt;IDEA_HOME/bin/idea.properties&lt;/b&gt; file there is a number of properties that refer to the settings directory:
&lt;pre&gt; 
 idea.config.path=${user.home}/.IntelliJIdea/config
 idea.system.path=${user.home}/.IntelliJIdea/system
 idea.plugins.path=${user.home}/.IntelliJIdea/config/plugins
 idea.log.path=${user.home}/.IntelliJIdea/system/log
&lt;/pre&gt;

So in order to create a new profile you need to copy the settings directory from &lt;b&gt;USER_HOME/.IntelliJIdea&lt;/b&gt; to &lt;b&gt;USER_HOME/.MyIntelliJ&lt;/b&gt; and in the configuration file that points to the settings directory you need to change to pointers accordingly to:
&lt;pre&gt; 
 idea.config.path=${user.home}/.MyIntelliJ/config
 idea.system.path=${user.home}/.MyIntelliJ/system
 idea.plugins.path=${user.home}/.MyIntelliJ/config/plugins
 idea.log.path=${user.home}/.MyIntelliJ/system/log
&lt;/pre&gt;

Assume, I will keep the configuration in MyIntelliJ.properties file. Now, on the startup, IntelliJ just needs to know, which properties file to use. As the documentation says, we can either set up IDEA_PROPERTIES environment variable to specify custom location of this properties file, like

&lt;pre&gt;set IDEA_PROPERTIES=c:\config\MyIntelliJ.properties&lt;/pre&gt;

or in unix:

&lt;pre&gt;export IDEA_PROPERTIES=/home/anton/MyIntelliJ.properties&lt;/pre&gt;

In the environment variable isn't specified, the configuration file is searched according following sequence (first successful is used):&lt;br/&gt;
1. &lt;i&gt;USER_HOME/&lt;/i&gt;&lt;br/&gt;
2. &lt;i&gt;IDEA_HOME/bin&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;

This way, it is pretty much possible to organize the profiles for IntelliJ, however, it would be cool to have such possibility out of the box via UI configuration.&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/_tIYsBqBJJc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/1014409677413266750/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=1014409677413266750" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1014409677413266750?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1014409677413266750?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/_tIYsBqBJJc/intellijidea-tip-configuration-profiles.html" title="IntelliJIDEA Tip: Configuration Profiles" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/04/intellijidea-tip-configuration-profiles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCRX45eCp7ImA9WhVTF08.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-320831565416179814</id><published>2012-03-02T12:50:00.001-08:00</published><updated>2012-03-02T12:51:04.020-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-02T12:51:04.020-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="33rd degree" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><title>33rd Degree</title><content type="html">I'll be speaking at &lt;a href="http://2012.33degree.org/"&gt;33rd Degree&lt;/a&gt; conference in Krakow, Poland. Looking at the &lt;a href="http://2012.33degree.org/main/schedule"&gt;schedule&lt;/a&gt; there's plenty of interesting talks I'd like to attend myself - hopefully I will have some time for that.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2012.33degree.org/"&gt;&lt;img border="0" height="51" width="400" src="http://2.bp.blogspot.com/-tSX-JKwaFWY/T1Ex0Yj1QDI/AAAAAAAAOmE/HeM-7NryoHM/s400/33Degree2012_468x60.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/3Vg-ueELktA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/320831565416179814/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=320831565416179814" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/320831565416179814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/320831565416179814?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/3Vg-ueELktA/33rd-degree.html" title="33rd Degree" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-tSX-JKwaFWY/T1Ex0Yj1QDI/AAAAAAAAOmE/HeM-7NryoHM/s72-c/33Degree2012_468x60.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2012/03/33rd-degree.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUCQXg5eyp7ImA9WhRQFE4.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-7017966944434387883</id><published>2011-12-09T05:26:00.000-08:00</published><updated>2011-12-09T05:27:40.623-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T05:27:40.623-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vaadin" /><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="jfokus2012" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><title>JFokus &amp; Vaadin Meetup</title><content type="html">I'm going to &lt;a href="http://www.jfokus.se/jfokus/register.jsp?lang=en#page=page-1"&gt;JFokus&lt;/a&gt; in February. Is anyone else coming? :)&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.jfokus.se/jfokus/register.jsp?lang=en#page=page-1" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="178" width="400" src="http://2.bp.blogspot.com/-F_U3Za2BqFw/TuIMFYo8zcI/AAAAAAAAOfo/E4Ij2d0NM6A/s400/Jfokus2012_450x200.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
There's also an awesome opportunity to join the &lt;a href="https://vaadin.com/meetup/jfokus-2012"&gt;Vaadin team at the boat to Stockholm from Helsinki&lt;/a&gt; - don't miss it!&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/FMcBxJyGCFY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/7017966944434387883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=7017966944434387883" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7017966944434387883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/7017966944434387883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/FMcBxJyGCFY/jfokus-vaadin-meetup.html" title="JFokus &amp; Vaadin Meetup" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-F_U3Za2BqFw/TuIMFYo8zcI/AAAAAAAAOfo/E4Ij2d0NM6A/s72-c/Jfokus2012_450x200.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/12/jfokus-vaadin-meetup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMCQXYyeSp7ImA9WhdaE0o.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-8496845657988435509</id><published>2011-10-23T05:34:00.000-07:00</published><updated>2011-10-23T05:37:40.891-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T05:37:40.891-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software" /><title>Sublime: The Awesome Text Editor</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;What is your favorite text editor? Not only to edit text but also to write some code. &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;? &lt;a href="http://www.vim.org/"&gt;Vim&lt;/a&gt;? &lt;a href="http://notepad-plus-plus.org/"&gt;Notepad++&lt;/a&gt; or &lt;a href="http://www.scintilla.org/SciTE.html"&gt;SciTE&lt;/a&gt;? Yeah, for code you can use IDEs, but sometimes it is just too much.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-oxbQBXJxfyg/TqQAdm7WiRI/AAAAAAAAOSg/iZ4fbI82fhw/s1600/vi_emacs_notepad.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://3.bp.blogspot.com/-oxbQBXJxfyg/TqQAdm7WiRI/AAAAAAAAOSg/iZ4fbI82fhw/s400/vi_emacs_notepad.jpg" width="288" /&gt;&lt;/a&gt;&lt;/div&gt;Myself, I'm a long time Vim fan. I know emacs is really-really powerful, but I could not quite understand the ideology behind it. Sometimes I use Notepad++, just because it works really well for log files. Just recently I discovered &lt;a href="http://www.sublimetext.com/"&gt;Sublime&lt;/a&gt;. This is a really awesome piece of software! &lt;br /&gt;
Sublime is available for OS X, Linux and Windows. It feels really lightweight, and the UI is quite responsive. In Sublime's &lt;a href="http://www.sublimetext.com/blog/"&gt;blog&lt;/a&gt; you will find nice tips and tricks on how to use the editor. And if you take a look at the &lt;a href="http://www.sublimetext.com/forum/"&gt;support forum&lt;/a&gt;, it seems that the guys are quite busy making the editor even more awesome. This all together just makes you want to by a license! :)&lt;/div&gt;&lt;br /&gt;
The UI is rather minimalistic, and all the required windows and dialogs appear on demand by pressing a relevant shortcut. What I really like is the file outline on right (see the screenshot below).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Co2awzuaA_s/TqQCZ1wwFLI/AAAAAAAAOSs/8DllhPDQpV0/s1600/sublime-main.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="264" width="400" src="http://2.bp.blogspot.com/-Co2awzuaA_s/TqQCZ1wwFLI/AAAAAAAAOSs/8DllhPDQpV0/s400/sublime-main.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Sublime comes with a huge number of code snippets available out of the box and you can define your own.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dVYCTtJFuhA/TqQGF7g4hGI/AAAAAAAAOS4/NusyO_Mp85w/s1600/sublime-snippets.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="314" width="400" src="http://2.bp.blogspot.com/-dVYCTtJFuhA/TqQGF7g4hGI/AAAAAAAAOS4/NusyO_Mp85w/s400/sublime-snippets.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Regarding the features, you're almost able to use Sublime as a full-featured IDE, not as intelligent as &lt;a href="http://www.jetbrains.com/idea"&gt;IntelliJIDEA&lt;/a&gt;, but still - you can edit code quite efficiently, compile source and execute the apps. Also, Sublime is quite extensible - you can create your own plugins, customize the layout, shortcuts, etc. &lt;br /&gt;
&lt;br /&gt;
I think, Sublime could be the new tool in my toolbox if I'd need to code something besides Java :)&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/XlYWi3HyeFE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/8496845657988435509/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=8496845657988435509" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8496845657988435509?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/8496845657988435509?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/XlYWi3HyeFE/sublime-awesome-text-editor.html" title="Sublime: The Awesome Text Editor" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-oxbQBXJxfyg/TqQAdm7WiRI/AAAAAAAAOSg/iZ4fbI82fhw/s72-c/vi_emacs_notepad.jpg" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/10/sublime-awesome-text-editor.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBQHo8eip7ImA9WhdbGUs.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-2815421348185139539</id><published>2011-10-18T11:40:00.001-07:00</published><updated>2011-10-18T11:40:51.472-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T11:40:51.472-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="awk" /><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="unix" /><category scheme="http://www.blogger.com/atom/ns#" term="sed" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><title>Slides: Practical Unix Utilities for Text Processing</title><content type="html">&lt;center&gt;&lt;br /&gt;
&lt;div style="width:425px" id="__ss_5338351"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/arhan/practical-unix-utilities-for-text-processing" title="Practical unix utilities for text processing" target="_blank"&gt;Practical unix utilities for text processing&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/5338351" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/arhan" target="_blank"&gt;Anton Arhipov&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/sZ3uueWplpg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/2815421348185139539/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=2815421348185139539" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/2815421348185139539?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/2815421348185139539?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/sZ3uueWplpg/slides-practical-unix-utilities-for.html" title="Slides: Practical Unix Utilities for Text Processing" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/10/slides-practical-unix-utilities-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcGQXs6eSp7ImA9WhdWFkw.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-3029068925849873491</id><published>2011-09-09T16:12:00.000-07:00</published><updated>2011-09-09T16:13:40.511-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-09T16:13:40.511-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="asm" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><category scheme="http://www.blogger.com/atom/ns#" term="bytecode" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><category scheme="http://www.blogger.com/atom/ns#" term="JavaZone2011" /><title>JavaZone 2011: Bytecode for discriminating developers</title><content type="html">&lt;center&gt;&lt;br /&gt;
&lt;iframe src="http://player.vimeo.com/video/28763757?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="601" height="177" frameborder="0" webkitAllowFullScreen allowFullScreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="width:425px" id="__ss_9173653"&gt;&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9173653" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/arhan" target="_blank"&gt;Anton Arhipov&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/1yEim0zi0PQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/3029068925849873491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=3029068925849873491" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3029068925849873491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3029068925849873491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/1yEim0zi0PQ/javazone-2011.html" title="JavaZone 2011: Bytecode for discriminating developers" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/09/javazone-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UFRH4_cCp7ImA9WhdWEEo.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-1216832228636956224</id><published>2011-09-03T10:33:00.000-07:00</published><updated>2011-09-03T10:33:35.048-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-03T10:33:35.048-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="job" /><category scheme="http://www.blogger.com/atom/ns#" term="bytecode" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><category scheme="http://www.blogger.com/atom/ns#" term="JavaZone2011" /><title>Destination: JavaZone, Oslo, Norway</title><content type="html">I'm &lt;a href="http://javazone.no/incogito10/events/JavaZone%202011/sessions#9be936e3-5e00-4bb5-9264-dc8968ca7f99"&gt;presenting at JavaZone&lt;/a&gt; the next week.&lt;br /&gt;
&lt;br /&gt;
There's &lt;a href="http://javazone.no/incogito10/events/JavaZone%202011/sessions"&gt;plenty of interesting sessions&lt;/a&gt; on the schedule that I'm tempted to attend myself.&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/OJ_xQ_Q16RU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/1216832228636956224/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=1216832228636956224" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1216832228636956224?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/1216832228636956224?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/OJ_xQ_Q16RU/destination-javazone-oslo-norway.html" title="Destination: JavaZone, Oslo, Norway" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/09/destination-javazone-oslo-norway.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DQnk6cSp7ImA9WhdXGEw.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-877098119830800940</id><published>2011-08-31T12:27:00.001-07:00</published><updated>2011-08-31T12:27:53.719-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-31T12:27:53.719-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm language summit" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm" /><title>JVM Language Summit 2011: Brian Goetz - Virtual Extension Methods</title><content type="html">&lt;center&gt;&lt;object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"&gt;&lt;param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="flashVars" value="videoId=1113272518001&amp;linkBaseURL=http%3A%2F%2Fmedianetwork.oracle.com%2Fmedia%2Fshow%2F16999&amp;playerID=1640183659&amp;playerKey=AQ~~,AAAAAFcSbzI~,OkyYKKfkn3za9MF0qI3Ufg1AerdkqfR3&amp;domain=embed&amp;dynamicStreaming=true" /&gt;&lt;param name="base" value="http://admin.brightcove.com" /&gt;&lt;param name="seamlesstabbing" value="false" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="swLiveConnect" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" bgcolor="#FFFFFF" flashVars="videoId=1113272518001&amp;linkBaseURL=http%3A%2F%2Fmedianetwork.oracle.com%2Fmedia%2Fshow%2F16999&amp;playerID=1640183659&amp;playerKey=AQ~~,AAAAAFcSbzI~,OkyYKKfkn3za9MF0qI3Ufg1AerdkqfR3&amp;domain=embed&amp;dynamicStreaming=true" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/UA-mwgsDySk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/877098119830800940/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=877098119830800940" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/877098119830800940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/877098119830800940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/UA-mwgsDySk/jvm-language-summit-2011-brian-goetz_31.html" title="JVM Language Summit 2011: Brian Goetz - Virtual Extension Methods" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/08/jvm-language-summit-2011-brian-goetz_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkANSH86eyp7ImA9WhdXGEw.&quot;"><id>tag:blogger.com,1999:blog-7020955483078867032.post-3452781047749299244</id><published>2011-08-31T12:26:00.000-07:00</published><updated>2011-08-31T12:26:39.113-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-31T12:26:39.113-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm language summit" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="bytecode" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm" /><title>JVM Language Summit 2011: Brian Goetz - From Lambdas to Bytecode</title><content type="html">&lt;center&gt;&lt;object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"&gt;&lt;param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="flashVars" value="videoId=1113272510001&amp;linkBaseURL=http%3A%2F%2Fmedianetwork.oracle.com%2Fmedia%2Fshow%2F17000&amp;playerID=1640183659&amp;playerKey=AQ~~,AAAAAFcSbzI~,OkyYKKfkn3za9MF0qI3Ufg1AerdkqfR3&amp;domain=embed&amp;dynamicStreaming=true" /&gt;&lt;param name="base" value="http://admin.brightcove.com" /&gt;&lt;param name="seamlesstabbing" value="false" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="swLiveConnect" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" bgcolor="#FFFFFF" flashVars="videoId=1113272510001&amp;linkBaseURL=http%3A%2F%2Fmedianetwork.oracle.com%2Fmedia%2Fshow%2F17000&amp;playerID=1640183659&amp;playerKey=AQ~~,AAAAAFcSbzI~,OkyYKKfkn3za9MF0qI3Ufg1AerdkqfR3&amp;domain=embed&amp;dynamicStreaming=true" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/AntonsBlog/~4/c8_fRsWlLjA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://arhipov.blogspot.com/feeds/3452781047749299244/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7020955483078867032&amp;postID=3452781047749299244" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3452781047749299244?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7020955483078867032/posts/default/3452781047749299244?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/AntonsBlog/~3/c8_fRsWlLjA/jvm-language-summit-2011-brian-goetz.html" title="JVM Language Summit 2011: Brian Goetz - From Lambdas to Bytecode" /><author><name>Anton Arhipov</name><uri>https://plus.google.com/105779776776467952201</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-n7fyrDCxRK8/AAAAAAAAAAI/AAAAAAAAQqE/ZMQ7H3Cfh-A/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://arhipov.blogspot.com/2011/08/jvm-language-summit-2011-brian-goetz.html</feedburner:origLink></entry></feed>
