<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Japila :: verba docent, exempla trahunt</title>
	<atom:link href="http://blog.japila.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.japila.pl</link>
	<description>Functional programming with Clojure, Java EE, and IBM WebSphere</description>
	<lastBuildDate>Sat, 06 Dec 2014 20:39:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.5.9</generator>
	<item>
		<title>Notes from Databricks&#8217; blog post about the plans for Spark SQL</title>
		<link>http://blog.japila.pl/2014/09/notes-from-databricks-blog-post-about-the-plans-for-spark-sql/</link>
		<comments>http://blog.japila.pl/2014/09/notes-from-databricks-blog-post-about-the-plans-for-spark-sql/#comments</comments>
		<pubDate>Wed, 17 Sep 2014 23:30:22 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Cluster Computing]]></category>
		<category><![CDATA[Apache Spark]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1777</guid>
		<description><![CDATA[You should instead be reading the original blog post Shark, Spark SQL, Hive on Spark, and the future of SQL on Spark on Databricks&#8217; blog as what&#8217;s coming below are my notes to build up a better understanding of Spark SQL (and potentially help the project bringing in more eyes to it). Spark SQL = a new SQL engine for [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>You should instead be reading the original blog post <a href="http://databricks.com/blog/2014/07/01/shark-spark-sql-hive-on-spark-and-the-future-of-sql-on-spark.html">Shark, Spark SQL, Hive on Spark, and the future of SQL on Spark</a> on Databricks&#8217; blog as what&#8217;s coming below are my notes to build up a better understanding of <a href="https://spark.apache.org/sql/">Spark SQL</a> (and potentially help the project bringing in more eyes to it).</p>
<p><span id="more-1777"></span></p>
<ul>
<li><strong>Spark SQL</strong> = a new SQL engine for Spark</li>
<li>compatibility with Shark/Hive</li>
<li>the new Hive on Spark effort &#8211; <a href="https://issues.apache.org/jira/browse/HIVE-7292">https://issues.apache.org/jira/browse/HIVE-7292</a></li>
<li>ending development of Shark &#8211; all hands on Spark SQL = moving all Databricks&#8217; development resources to Spark SQL</li>
<li>a superset of Shark’s features for existing Shark users</li>
<li>designed from ground-up to leverage the power of Spark</li>
<li>upgrade path from Shark 0.9 to Spark SQL to help migrate people from Hive to Spark</li>
<li>Hive (on MapReduce) was the only choice for SQL on Hadoop 3 years ago</li>
<li>Hive compiled SQL into scalable MapReduce jobs and could work with a variety of formats (through its SerDes)
<ul>
<li>performance not satisfactory though = deficiencies that made Hive slow were fundamental</li>
<li>no interactive queries</li>
</ul>
</li>
<li>Shark became one of the first interactive SQL on Hadoop systems
<ul>
<li>the only one built on top of a general runtime (Spark)</li>
</ul>
</li>
<li>Shark built on the Hive codebase and achieved performance improvements by swapping out the physical execution engine part of Hive</li>
<li>Shark inherited a large, complicated code base from Hive that made it hard to optimize and maintain.
<ul>
<li>constrained by the legacy that was designed for MapReduce.</li>
</ul>
</li>
<li>Spark SQL supports all existing Hive data formats, user-defined functions (UDF), and the Hive megastore.</li>
<li>Spark SQL becomes the narrow-waist for manipulating (semi-) structured data as well as ingesting data from sources that provide schema, such as JSON, Parquet, Hive, or EDWs (Enterprise Data Warehourses)</li>
<li>unifies SQL and sophisticated analysis, allowing users to mix and match SQL and more imperative programming APIs for advanced analytics.</li>
<li>Spark SQL proposes a novel, elegant way of building query planners
<ul>
<li>easy to add new optimisations</li>
</ul>
</li>
<li>Spark SQL is becoming the standard for SQL on Spark</li>
<li>Spark as an alternative execution engine to Hive = to migrate the execution to Spark</li>
<li>Spark SQL will be the future of not only SQL, but also structured data processing on Spark.</li>
</ul>
<p>BTW, the examples in <a href="https://spark.apache.org/docs/latest/sql-programming-guide.html">Spark SQL Programming Guide</a> are working like a charm. They&#8217;re so easy to run and comprehend that I couldn&#8217;t understand at first what the fuss is about.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/09/notes-from-databricks-blog-post-about-the-plans-for-spark-sql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Learning #Spark from @OReillyMedia &#8211; Look no further for definitive guide to big data analytics with Apache Spark</title>
		<link>http://blog.japila.pl/2014/09/learning-spark-from-oreillymedia-look-no-further-for-definitive-guide-to-big-data-analytics-with-apache-spark/</link>
		<comments>http://blog.japila.pl/2014/09/learning-spark-from-oreillymedia-look-no-further-for-definitive-guide-to-big-data-analytics-with-apache-spark/#comments</comments>
		<pubDate>Mon, 15 Sep 2014 17:57:06 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Apache Spark]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1770</guid>
		<description><![CDATA[The following book review is about the Early Release (Raw &#38; Unedited) version of the book Learning Spark: Lightning-Fast Big Data Analytics from O’Reilly. I was reading the book in the mobi format on Kindle Paperwhite. It was a review copy from O’Reilly. tl;dr Read the book if you’re curious about Apache Spark and are [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://shop.oreilly.com/product/0636920028512.do"><img class="alignleft wp-image-1771 size-full" src="http://blog.japila.pl/wp-content/uploads/2014/09/bookcover-learning-spark.gif" alt="Learning Spark book's cover" width="180" height="236" /></a></p>
<p>The following book review is about the <strong>Early Release (Raw &amp; Unedited) version</strong> of the book <a href="http://shop.oreilly.com/product/0636920028512.do">Learning Spark: Lightning-Fast Big Data Analytics</a> from O’Reilly. I was reading the book in the mobi format on Kindle Paperwhite. It was a review copy from O’Reilly.</p>
<p><strong>tl;dr</strong> Read the book if you’re curious about <a href="https://spark.apache.org/">Apache Spark</a> and are on the lookout for a more systematic approach to learn its features. Even at this writing stage can the book be very useful for newcomers to the field as well as people more experienced.</p>
<p><span id="more-1770"></span></p>
<p>I have never worked commercially or as a hobby with any project that would claim to be some sort of Big Data solution, and Apache Spark was no exception. The reason for more interest in Spark was due to <a href="http://www.scala-lang.org/">the Scala language</a> the project is developed in (reviewing the source code’s changes) and at some point in the project’s history they were more convinced to use <a href="http://www.scala-sbt.org/">sbt</a> that I hoped to have helped myself and them to comprehend. Later on, it turned out that not only could I learn Scala and sbt, but also <a href="http://akka.io/">Akka</a> and the concept of <strong>data stream mining</strong> with <a href="https://spark.apache.org/streaming/">Spark Streaming</a> (I’ve also been considering <a href="https://storm.incubator.apache.org/">Storm</a>, but it’s in Clojure that I once left aside for Scala). Spark shell (based on Scala REPL) made the learning so much easier that I was sure I’m with Spark for longer. I also happened to have developed an Activator template to let others get started with Spark Streaming &#8211; <a href="https://typesafe.com/activator/template/spark-streaming-scala-akka">Spark Streaming with Scala and Akka (spark-streaming-scala-akka)</a>.</p>
<p>With a few weeks of learning Spark under my belt I needed a book to overcome initial hurdles and reach higher level of confidence in applying Spark where it’d fit well. I simply needed a mentor who’d guide me through &#8220;what, when, how&#8221; of Spark and the book did that far beyond my expectations.</p>
<p>There are already 5 chapters of quality that I didn’t expect from a book in an early release &#8211; I must admit that the content’s polished and after having read the chapters I need more of it. The book’s written by people who are the committers of the project and their writing style is very engaging with enough theory and code samples in <strong>Java</strong>, <strong>Scala</strong> and <strong>Python</strong>. There are many use cases for which Spark is a valid software offering and I’m in no way to imagine how my Spark skills will have grown up after the other chapters yet to come like Advanced Programming with RDDs, Spark Architecture and Deploying Spark. It&#8217;s undoubtedly going to be a painful experience waiting for them to show up.</p>
<p>If the 5 chapters (out of 13 planned) were any indication of what the book’s going to look like in the final version, I’m fully confident of its success &#8211; it’s going to be the bestseller in the area of Big Data Analytics. No programming language &#8211; out of Java, Scala or Python &#8211; is favoured. As the authors pointed out in the initial pages, they’re going to show examples of using Spark in the three programming languages and they’re doing it for each and every use case. That’s also one of the selling points of Spark that the book highlights very well &#8211; the samples are simple to comprehend, almost no-brainers, and can easily fit a page, even in all three languages. Without Spark the samples would not have been so easy to implement and would&#8217;ve required much more from the implementer, be it an engineer or data analyst. The book demonstrates it well.</p>
<p>As we’re at it, the two job titles &#8211; a software engineer and a data analyst &#8211; are the people the book targets. It’s just this book that has helped me to notice the difference between them and how Spark blends their needs into a single software offering. After the 5 chapters Spark appears so simple that I doubt there’s anything that can surprise me that would not be a bug or an intended (yet surprising) feature. The book has helped me to build confidence in understanding the benefits of using Spark in my project and I’m really looking forward to reading the remaining chapters. I&#8217;m hoping that the authors and the publisher won’t let me wait too long.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/09/learning-spark-from-oreillymedia-look-no-further-for-definitive-guide-to-big-data-analytics-with-apache-spark/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JDay Lviv 2014 is over, but the memories remain forever &#8211; looking forward to 2015!</title>
		<link>http://blog.japila.pl/2014/09/jday-lviv-2014-is-over-but-the-memories-remain-forever-looking-forward-to-2015/</link>
		<comments>http://blog.japila.pl/2014/09/jday-lviv-2014-is-over-but-the-memories-remain-forever-looking-forward-to-2015/#respond</comments>
		<pubDate>Sun, 07 Sep 2014 20:42:13 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Self-development]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1747</guid>
		<description><![CDATA[Thanks Andriy Andrunevchyn and Andriy Pashkevych for the fabulous JDay 2014 conference in Lviv, Ukraine. The city, the venue, the people and the temperature outside made the conference such a fantastic event. Thanks a bunch! I owe you a lot for having been invited to speak on the conference. My talk &#8220;#Be #social #FTW aka [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_124546.jpg"><img class="aligncenter size-large wp-image-1758" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_124546-1024x768.jpg" alt="20140907_124546" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_124546-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140907_124546-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Thanks <a href="http://ua.linkedin.com/in/andriyandrunevchyn">Andriy Andrunevchyn</a> and <a href="http://ua.linkedin.com/pub/andriy-pashkevych/44/803/50">Andriy Pashkevych</a> for the fabulous <a href="http://www.jday.com.ua/">JDay 2014</a> conference in <a href="http://en.wikipedia.org/wiki/Lviv">Lviv, Ukraine</a>. The city, the venue, the people and the temperature outside made the conference such a fantastic event. Thanks a bunch! I owe you a lot for having been invited to speak on the conference.</p>
<p><span id="more-1747"></span></p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172600.jpg"><img class="aligncenter size-large wp-image-1755" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172600-1024x768.jpg" alt="20140906_172600" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172600-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172600-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>My talk <strong>&#8220;#Be #social #FTW aka Your #Professional #Development with #StackOverflow #GitHub #twitter et al&#8221;</strong> went pretty well. I was speaking about my own experience using social development tools like <a href="http://stackoverflow.com/users/1305344/jacek-laskowski">StackOverflow</a>, <a href="https://github.com/jaceklaskowski">GitHub</a>, <a href="https://twitter.com/jaceklaskowski">twitter</a> et al. to develop professional skills I care about the most &#8211; being in touch with people (I might never ever meet in my life in person) about technical stuff I like spending my time on these days.</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172604.jpg"><img class="aligncenter size-large wp-image-1756" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172604-1024x768.jpg" alt="20140906_172604" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172604-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172604-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Honestly, what could’ve gone wrong since I was speaking about my own reasons for the tools I picked myself and how it’s going?! It’s going well so it was hardly possible to spoil the talk, really (except for my English, speaking skills and the jokes, perhaps). There could&#8217;ve been too many <strong>I</strong>&#8216;s and <strong>me</strong>&#8216;s, that could not have been well received, but since I was speaking about my own experience I couldn&#8217;t have done it otherwise. I do hope it was not an issue whatsoever.</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172608.jpg"><img class="aligncenter size-large wp-image-1757" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172608-1024x768.jpg" alt="20140906_172608" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172608-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_172608-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="http://www.slideshare.net/jaceklaskowski/jacek-laskowski-jdaylvivstackoverflowgithubtwitter20140906">Watch the slides #Be #social #FTW aka Your #Professional #Development with #StackOverflow #GitHub #twitter et al at SlideShare.</a></p>
<p>I&#8217;m tempted to think I managed to spur some activity in using these tools as a means of personal professional development (my followers list grew up with additional 15 people after the talk that amounts to ca 10% of all the attendees so I think I can claim some success).</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_135702.jpg"><img class="aligncenter wp-image-1759 size-large" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_135702-e1410122238674-768x1024.jpg" alt="20140907_135702" width="640" height="853" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140907_135702-e1410122238674-768x1024.jpg 768w, http://blog.japila.pl/wp-content/uploads/2014/09/20140907_135702-e1410122238674-225x300.jpg 225w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>When I asked a few questions about how many people are using StackOverflow, GitHub and twitter the number of hands were matching the order I mentioned the tools. There was one exception with coursera that I only mentioned for a moment that turned out as much widely recognised and used as GitHub if not StackOverflow. It was nice to have talked to people who want to learn from the speaker and very actively participated in conversations. I once or twice asked questions about who doesn’t know a thing and there were few brave souls who raised their hands to tell me that I need to explain what I thought would not have been needed at all.</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154302.jpg"><img class="aligncenter size-large wp-image-1751" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154302-1024x768.jpg" alt="20140906_154302" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154302-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154302-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Lviv is a nice city with lots of nice-looking people on the streets. It was surely more crowded during the weekend than in Warsaw, but it could&#8217;ve also been that I don’t spend much time walking in the centre of Warsaw so it might be just me who could be surprised. I was indeed. The sun was shining so warmly. A t-shirt was all you needed to have a walk any time, even around the midnight &#8211; the night of the conference &#8211; after the after-party.</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154704.jpg"><img class="aligncenter size-large wp-image-1752" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154704-1024x768.jpg" alt="20140906_154704" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154704-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154704-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>I was pleasantly surprised twice about the people living in Lviv when I was asked (in a way I’d not be afraid calling a request) to speak Polish since I’m Polish. The first time was at the customs after arriving to Lviv and another when I needed some guidance from a 25ish-year-old man on how to get to the conference venue. It turned out that the young man had his grandparents Polish. As a matter of fact, his Polish language was far better at times than mine since he was using words I simply forgot they existed. I even thought that the Polish language in Lviv might&#8217;ve been a bit purer since the language could&#8217;ve been specially treated for it not to be forgotten and couldn&#8217;t have had that much changed by new words coming in from different parts of Poland and abroad. After all, it’s not very long &#8211; about 70 years &#8211; when Lviv was Polish (<a href="http://en.wikipedia.org/wiki/Lviv#World_War_II_and_Soviet_occupation">amazingly, the history of Lviv during and after the World War II resembles what’s going on with the eastern part of Ukraine today, and how the Europe and US leaders agreed on Soviet re-occupation</a>).</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154817.jpg"><img class="aligncenter wp-image-1753 size-large" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154817-e1410122265849-768x1024.jpg" alt="20140906_154817" width="640" height="853" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154817-e1410122265849-768x1024.jpg 768w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_154817-e1410122265849-225x300.jpg 225w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Thanks Andriy’s for a lovely conference in Lviv, Ukraine. I very much enjoyed speaking at the conference and wish myself I could be invited again the next year. I&#8217;m looking forward to it. See you!</p>
<p><a href="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_164757.jpg"><img class="aligncenter size-large wp-image-1754" src="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_164757-1024x768.jpg" alt="20140906_164757" width="640" height="480" srcset="http://blog.japila.pl/wp-content/uploads/2014/09/20140906_164757-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/09/20140906_164757-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/09/jday-lviv-2014-is-over-but-the-memories-remain-forever-looking-forward-to-2015/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Takeaway from AngularJS 101 &#8211; Everything you need to know to get started by Stéphane Bégaudeau</title>
		<link>http://blog.japila.pl/2014/08/takeaway-from-angularjs-101-everything-you-need-to-know-to-get-started-by-stephane-begaudeau/</link>
		<comments>http://blog.japila.pl/2014/08/takeaway-from-angularjs-101-everything-you-need-to-know-to-get-started-by-stephane-begaudeau/#respond</comments>
		<pubDate>Fri, 15 Aug 2014 20:15:39 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[angularjs]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1741</guid>
		<description><![CDATA[AngularJS 101 &#8211; Everything you need to know to get started by Stéphane Bégaudeau is another deck of slides about AngularJS I watched today. It&#8217;s to improve my understanding of how to use AngularJS in my current and future projects. It&#8217;s the front-end JavaScript framework for the project I&#8217;m in after all so to apply [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.slideshare.net/sbegaudeau/angular-js-101-everything-you-need-to-know-to-get-started">AngularJS 101 &#8211; Everything you need to know to get started</a> by Stéphane Bégaudeau is another deck of slides about <strong>AngularJS</strong> I watched today. It&#8217;s to improve my understanding of how to use AngularJS in my current and future projects. It&#8217;s the front-end JavaScript framework for the project I&#8217;m in after all so to apply it well I&#8217;m watching slides on Slideshare and taking notes to keep the lessons last longer.</p>
<p><span id="more-1741"></span></p>
<p>The slide deck was exactly what I needed &#8211; fully packed with enough in-depth information on Angular components: controllers, services, directives, scopes, filters, and modules.</p>
<p><strong>REMEMBER</strong> Never ever manipulate the DOM from the controller</p>
<p><strong>Directives</strong></p>
<ul>
<li>Declarative HTML</li>
<li>Use the data available in the scope</li>
<li>Create DOM on the fly</li>
<li><em>ng-repeat</em></li>
<li><em>ng-switch</em></li>
</ul>
<p>(bidirectional) <strong>Data binding</strong></p>
<ul>
<li>connects models to views and vice versa</li>
<li><em>ngModel</em> &#8211; new bindings</li>
</ul>
<p><strong>filters</strong></p>
<ul>
<li><em>{{ expression | filter }}</em></li>
<li><em>uppercase</em> filter</li>
</ul>
<p><strong>partial views</strong></p>
<ul>
<li>history management</li>
<li>bind views to routes</li>
<li><em>ng-view</em></li>
</ul>
<p><strong>Components of Angular application</strong></p>
<ul>
<li>module</li>
<li>controllers</li>
<li>services</li>
<li>filters</li>
<li>directives</li>
</ul>
<p><strong>$routeProvider</strong> &#8211; configures routes in your module</p>
<p><strong>Controllers</strong></p>
<ul>
<li>data provider for views</li>
<li><em>angularModule.controller</em></li>
</ul>
<p><strong>Scope</strong></p>
<ul>
<li>link between controllers and the views they’re bound to</li>
<li>controller adds data and functions so they’re visible in views</li>
<li>child scopes</li>
<li>directives can manage their own scope</li>
</ul>
<p><strong>Scope $watch</strong></p>
<ul>
<li>observe changes on the data of the scope in the controller</li>
</ul>
<p><strong>Scope $broadcast and $on</strong></p>
<ul>
<li>access to system of events and listeners on the scope</li>
<li><em>$broadcast</em> to fire an event</li>
<li><em>$on</em> to receive an event</li>
<li>Use <em>$rootScope</em> to send events to the whole application</li>
</ul>
<p><strong>Services</strong></p>
<ul>
<li>utility components of your application</li>
<li>controllers manage data for views</li>
<li>Use services to separate code to be reused in controllers</li>
<li><em>angularModule.factory</em></li>
<li>services can be injected into other Angular components &#8211; services, filters, controllers, directives</li>
</ul>
<p><strong>Directives</strong></p>
<ul>
<li>today’s HTML components</li>
<li><em>angularModule.directive</em></li>
<li><em>&lt;div nameOfTheDirective&gt;&lt;/div&gt;</em></li>
</ul>
<p><strong>REMEMBER</strong> Never ever manipulate the DOM from the controller</p>
<p>Here are the slides. They&#8217;re worth the time!</p>
<p><center><iframe src='https://www.slideshare.net/slideshow/embed_code/23577584' width='640' height='525' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/08/takeaway-from-angularjs-101-everything-you-need-to-know-to-get-started-by-stephane-begaudeau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Takeaway from Advanced Tips &#038; Tricks for using Angular JS by Simon Guest</title>
		<link>http://blog.japila.pl/2014/08/takeaway-from-advanced-tips-tricks-for-using-angular-js-by-simon-guest/</link>
		<comments>http://blog.japila.pl/2014/08/takeaway-from-advanced-tips-tricks-for-using-angular-js-by-simon-guest/#comments</comments>
		<pubDate>Fri, 15 Aug 2014 19:11:24 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[angularjs]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1726</guid>
		<description><![CDATA[I&#8217;m developing a web application with #AngularJS in a project, and since web development has never been of a great importance to me I&#8217;ve got a lot to learn. It was me to have picked AngularJS for the front-end, but right after I had chosen it, I found few other compelling web frameworks, like #React. While I&#8217;m sure AngularJS [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m developing a web application with <a href="https://angularjs.org/">#AngularJS</a> in a project, and since web development has never been of a great importance to me I&#8217;ve got a lot to learn. It was me to have picked AngularJS for the front-end, but right after I had chosen it, I found few other compelling web frameworks, like <a href="http://facebook.github.io/react/">#React</a>.<br />
<span id="more-1726"></span><br />
While I&#8217;m sure AngularJS will stay for a longer while in the project, I&#8217;m pursuing my understanding of React and where and how it can complement or even replace AngularJS.</p>
<p>Today I watched the slides <a href="http://www.slideshare.net/simonguest/advanced-tips-tricks-for-using-angular-js">Advanced Tips &amp; Tricks for using Angular JS</a> and here are the main points I wrote down to remember:</p>
<ul>
<li>There&#8217;s more than <em>controllers</em> in AngularJS. Use <em>services</em> and <em>directives</em> early and often.</li>
<li><em>Directives</em>:
<ul>
<li>make markup declarative</li>
<li>support templates</li>
<li>promote re-use</li>
<li>prevent lots of JavaScripts</li>
</ul>
</li>
<li>slide 42: avoid <em>console.log</em>. Use <em>$log</em> instead.</li>
<li><a href="https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk">AngularJS Batarang</a></li>
<li><a href="http://angular-ui.github.io/bootstrap/">UI Bootstrap</a> &#8211; Bootstrap components written in pure AngularJS by the AngularUI Team</li>
<li>slide 53: Controllers should never refer to DOM elements</li>
<li>slide 53: Controllers should use services for business logic</li>
<li><em>$scope</em> is glue between controller and model (accessed through services)</li>
<li>Services are singletons</li>
<li>Use <em>watch collection</em> to calculate required elements at the first invocation of a controller as follows:
<div class="codecolorer-container text default" style="border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$scope.$watchCollection(‘items’, function(newItems) {<br />
&nbsp; for(var i = 0; i &lt; newItems.length; i++) {<br />
&nbsp; &nbsp; newItems[i].price = getPrice(newItems[i].id);<br />
&nbsp; }<br />
&nbsp; $scope.items = newItems;<br />
});</div></div>
</li>
</ul>
<p><center><iframe src='https://www.slideshare.net/slideshow/embed_code/33831520' width='640' height='525' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></center></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/08/takeaway-from-advanced-tips-tricks-for-using-angular-js-by-simon-guest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bye, bye, Citi&#8230;on to seeking greener pastures elsewhere</title>
		<link>http://blog.japila.pl/2014/08/bye-bye-citi-on-to-seeking-greener-pastures-elsewhere/</link>
		<comments>http://blog.japila.pl/2014/08/bye-bye-citi-on-to-seeking-greener-pastures-elsewhere/#comments</comments>
		<pubDate>Wed, 13 Aug 2014 22:17:22 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Self-development]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1722</guid>
		<description><![CDATA[What a day! Today&#8217;s my 41st birthday and I&#8217;m very happy to have received so many best wishes. There were far too many than I had imagined. Thanks all! What made the day even more worthwhile to remember was the decision of Citi and mine to terminate the employment contract, effective today. After a year [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>What a day! Today&#8217;s my <strong>41</strong>st birthday and I&#8217;m very happy to have received so many best wishes. There were far too many than I had imagined. Thanks all!</p>
<p>What made the day even more worthwhile to remember was the decision of Citi and mine to terminate the employment contract, effective today. After a year and two months our vision on what and how to deliver no longer converged and so there was no point pretending otherwise. It just didn&#8217;t work out.<br />
<span id="more-1722"></span><br />
Below is the farewell letter I sent to the team to thank them for their support. I now consider myself <strong>unemployed</strong> and am looking for greener pastures elsewhere.</p>
<p>Ping me at <a href="jacek@japila.pl">jacek@japila.pl</a> when you&#8217;ve got a job contract for a person who often voices his thoughts, can build and lead technical teams, develops code, is passionate about delivering high-quality software, can be a liaison between technical and business teams, is open-minded and moreover always keeps pushing own knowledge boundaries. I&#8217;m open for crazy ideas and can offer some myself, too.</p>
<p><em>From: Jacek Laskowski<br />
Subject: Farewell<br />
Date: August 13th, 2014 5:00 pm</em></p>
<p><em>As you may’ve heard I’m leaving the company to seek greener pastures elsewhere. This is to say BIG THANK YOU for your patience and bearing with my crazy ideas. There were way too many to keep sane. I’m sure of it.</em></p>
<p><em>I joined Citi a year ago and worked directly or indirectly with almost all of you that makes my leaving so painful. Anyway, life goes on and so our careers. Thanks for your support, patience, willingness, openness and so many opportunities that offered venues to enormously improve my technical and interpersonal skills. You’ve been stretching my skills in all possible directions. I do consider no day in Citi a waste of my time and will miss y’a, folks!</em></p>
<p><em>Get in touch with me on LinkedIn (<a href="http://pl.linkedin.com/in/jaceklaskowski">http://pl.linkedin.com/in/jaceklaskowski</a>), twitter (<a href="https://twitter.com/jaceklaskowski">https://twitter.com/jaceklaskowski</a>), blogs, stackoverflow (<a href="http://stackoverflow.com/users/1305344">http://stackoverflow.com/users/1305344</a>), facebook (<a href="https://www.facebook.com/laskowski.jacek">https://www.facebook.com/laskowski.jacek</a>), you name it. My email’s <a href="jacek@japila.pl">jacek@japila.pl</a> and should you have a work you don’t want to do I’ll be waiting for your email to offer my support! I’ll be round the corner. Thanks!</em></p>
<p><em>Best wishes for the future! See you later.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/08/bye-bye-citi-on-to-seeking-greener-pastures-elsewhere/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hacking #scalasbt with @gkossakowski on @WarszawScaLa meetup in @javeo_eu</title>
		<link>http://blog.japila.pl/2014/07/hacking-scalasbt-with-gkossakowski-on-warszawscala-meetup-in-javeo_eu/</link>
		<comments>http://blog.japila.pl/2014/07/hacking-scalasbt-with-gkossakowski-on-warszawscala-meetup-in-javeo_eu/#respond</comments>
		<pubDate>Wed, 16 Jul 2014 21:08:39 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[sbt]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[warszawscala]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1713</guid>
		<description><![CDATA[It&#8217;s amazing how much I could learn hacking with so many clever Scala developers in one room during 2,5-hour meetup of @WarszawScaLa. Today was the day of #Scalania 22 during which Grzegorz Kossakowski @gkossakowski from Typesafe explained the changes needed to get rid of blank lines found in *.sbt build files in sbt. Thanks so [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s amazing how much I could learn hacking with so many clever Scala developers in one room during 2,5-hour meetup of <a href="https://twitter.com/WarszawScaLa">@WarszawScaLa</a>. Today was the day of <a href="http://www.meetup.com/WarszawScaLa/events/195104482/">#Scalania 22</a> during which <a href="https://twitter.com/gkossakowski">Grzegorz Kossakowski @gkossakowski</a> from Typesafe explained the changes needed to get rid of blank lines found in <code class="codecolorer text default"><span class="text">*.sbt</span></code> build files in <a href="http://www.scala-sbt.org/">sbt</a>. Thanks so much <a href="https://twitter.com/javeo_eu">@javeo_eu</a> for the food and venue. Many thanks Grzegorz for leading the meetup. Thanks the other Scala developers for the atmosphere.<br />
<span id="more-1713"></span><br />
<a href="http://blog.japila.pl/wp-content/uploads/2014/07/20140716_195952.jpg"><img src="http://blog.japila.pl/wp-content/uploads/2014/07/20140716_195952-1024x768.jpg" alt="Scalania 22  with Grzegorz" width="640" height="480" class="aligncenter size-large wp-image-1719" srcset="http://blog.japila.pl/wp-content/uploads/2014/07/20140716_195952-1024x768.jpg 1024w, http://blog.japila.pl/wp-content/uploads/2014/07/20140716_195952-300x225.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>As the result of the Scala hackathon we created a change that&#8217;s the following snippet (that ultimately may become part of <code class="codecolorer text default"><span class="text">sbt.EvaluateConfigurations</span></code> object):</p>
<div class="codecolorer-container text default" style="border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">def splitExpressions(lines: Seq[String]): (Seq[(String, Int)], Seq[(String, LineRange)]) =<br />
{<br />
&nbsp; import scala.reflect.runtime._<br />
&nbsp; val cm = universe.runtimeMirror(getClass.getClassLoader)<br />
&nbsp; import scala.tools.reflect.ToolBox<br />
&nbsp; val tb = cm.mkToolBox(scala.tools.reflect.mkSilentFrontEnd(), &quot;-Yrangepos&quot;)<br />
&nbsp; val buildSbt = lines.mkString<br />
&nbsp; val parsed = tb.parse(buildSbt)<br />
&nbsp; val b = parsed.asInstanceOf[scala language=&quot;.reflect.internal.Trees#Block&quot;][/scala]<br />
&nbsp; val t = b.stats :+ b.expr<br />
&nbsp; // val s = t.flatMap(e =&gt; buildSbt.substring(e.pos.start, e.pos.end)).mkString<br />
&nbsp; (Seq.empty, Seq.empty)<br />
}</div></div>
<p>It&#8217;s surely going to take more time to <em>polish</em> the changes until it&#8217;s merged to sbt however the meetup showed us how much we can hack together when the topic under discussion is well-presented and the meeting led by highly-skilled developers. Kudos to Grzegorz for leading the meetup! I can&#8217;t wait to the next Scala shackathons.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/07/hacking-scalasbt-with-gkossakowski-on-warszawscala-meetup-in-javeo_eu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@gkossakowski on @WarszawScaLa about how to patch #scalasbt</title>
		<link>http://blog.japila.pl/2014/07/gkossakowski-on-warszawscala-about-how-to-patch-scalasbt/</link>
		<comments>http://blog.japila.pl/2014/07/gkossakowski-on-warszawscala-about-how-to-patch-scalasbt/#respond</comments>
		<pubDate>Wed, 02 Jul 2014 21:32:10 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[warszawscala]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1705</guid>
		<description><![CDATA[What a fabulous @WarszawScaLa meetup! Grzegorz Kossakowski @gkossakowski has explained us the reasons behind the empty lines in build.sbt files in sbt and how to fix them with Scala&#8217;s parser! It&#8217;s not the first time when we hosted a meetup with Grzegorz in which I was enormously enlightened by his understanding of the internals of Scala. With [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>What a fabulous <a href="http://www.meetup.com/WarszawScaLa/">@WarszawScaLa</a> meetup! <a href="https://twitter.com/gkossakowski">Grzegorz Kossakowski @gkossakowski</a> has explained us the reasons behind the empty lines in build.sbt files in sbt and how to fix them with Scala&#8217;s parser!<br />
<span id="more-1705"></span><br />
It&#8217;s not the first time when we hosted a meetup with Grzegorz in which I was enormously enlightened by his understanding of the internals of Scala. <a href="https://github.com/sbt/sbt/commits?author=gkossakowski">With his changes to the incremental compiler for sbt</a> he had so much exposure to sbt that having him on our meetups makes them so fruitful. We&#8217;re receiving answers from the top-notch Scala hacker!</p>
<p>This time we were discussing <a href="https://twitter.com/gkossakowski/status/484349164164513793">the (in)famous blank lines: why, what do they do and can we make them a happy memory of the past?</a> As the result we&#8217;re going to host a mini Scala hackathon in two weeks in which we&#8217;re going to hack the changes needed for the issue to go away (or at the very least an action plan to address the issue). That&#8217;s going to be our first Scala hack-a-thon in the group that should give us experience in hosting larger ones for other challenging issues in Scala tools. We&#8217;re not going to be limited to sbt only (yet <a href="http://stackoverflow.com/tags/sbt/topusers">that&#8217;s where we&#8217;ve got quite impressive bunch of people who know about sbt quite enough</a> &#8211; <a href="https://twitter.com/gkossakowski">@gkossakowski</a> from Typesafe, <a href="https://twitter.com/lpiepiora">@lpiepiora</a>, <a href="https://twitter.com/jozwikandrzej">@jozwikandrzej</a> and <a href="https://twitter.com/jaceklaskowski">@jaceklaskowski</a>). I know about people&#8217;s wishes to hack the other well-known tools like Akka, Spray, Play to name a few.</p>
<p>I&#8217;m sure I&#8217;m going to say what the Scala community in Warszawa, Poland is saying &#8211; with Grzegorz we&#8217;re going to make the change in Scala! And it&#8217;s going to be soon. Stay tuned!</p>
<p>Thanks <a href="https://twitter.com/javeo_eu">@javeo_eu</a> for offering us the space for the meetups, Grzegorz for the efforts to shorten the time to dig deeper into Scala, and the Scala community in Poland for the environment to have such ideas flourish! I&#8217;m deeply indebted to you for being part of the group. Thanks!</p>
<p>See you in two weeks during the mini-Scala-thon. That&#8217;s gonna be <em>hacking</em> fun! <a href="https://twitter.com/warszawscala">Follow us on @WarszawScaLa twitter</a> to get notified about our meetups or <a href="http://www.meetup.com/WarszawScaLa/">join the WarszawScaLa User Group meetup</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/07/gkossakowski-on-warszawscala-about-how-to-patch-scalasbt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@WarszawaJUG meetup about #Java8 and later celebrating #Scala 2.11</title>
		<link>http://blog.japila.pl/2014/04/warszawajug-meetup-about-java8-and-later-celebrating-scala-2-11/</link>
		<comments>http://blog.japila.pl/2014/04/warszawajug-meetup-about-java8-and-later-celebrating-scala-2-11/#respond</comments>
		<pubDate>Tue, 22 Apr 2014 22:54:11 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[Java 8]]></category>
		<category><![CDATA[Scala]]></category>
		<category><![CDATA[WarszawaJUG]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1702</guid>
		<description><![CDATA[The idea of a series of 5-minute talks about #Java8 worked so well today during @WarszawaJUG meetup. It all started at 18:15 and finished at 20:00 for me as there was another get-together to celebrate the release of #Scala 2.11. I&#8217;d known that the short talks worked well in the past and was curious how much I could learn [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>The idea of a series of <strong>5-minute talks</strong> about <strong>#Java8</strong> worked so well today during <a href="https://twitter.com/WarszawaJUG">@WarszawaJUG</a> meetup.<br />
<span id="more-1702"></span><br />
It all started at 18:15 and finished at 20:00 for me as there was another get-together to celebrate <a href="http://www.scala-lang.org/news/2014/04/21/release-notes-2.11.0.html">the release of #Scala 2.11</a>. I&#8217;d known that the short talks worked well in the past and was curious how much I could learn about the latest release of Java 8 from the speakers. The diversity was one of the many reasons I attended the meetup and am going to do so more often when the flash-talks are organised.</p>
<p>I listened to a talk about <strong>java.time</strong> by <strong>Tomasz Nurkiewicz</strong>, <strong>JSR 356 Java API for WebSocket</strong> by <strong>Andrzej Golawski</strong>, <strong>the latest changes in Map</strong> by <strong>Michal Lewandowski</strong>, <strong>Java 8 on Android</strong> by <strong>Krzysztof Siejkowski</strong>, <strong>java.util.stream</strong> by <strong>Pawel Szklarz</strong>, <strong>Optional</strong> by <strong>Piotr Trzpil</strong>, <strong>HashMap&#8217;s performance improvements in Java 8</strong> by <strong>Tomasz Nurkiewicz</strong> and <strong>JSR 352 Batch Applications</strong> by <strong>Krzysztof Miksa</strong>.</p>
<p>I&#8217;m deeply sorry for asking so many questions, but the topics were so interesting that I couldn&#8217;t resist learning more.</p>
<p>The number of the flash-talks would attract many hard-core, full-blown Java conferences, but it would not be able to attend all of them when they&#8217;re 30- or 45-minute presentations given time constraints. With 5 minutes each I&#8217;d an excellent introduction to the many latest additions in Java 8 and Java EE 7. That&#8217;s what I liked the most about the meetup.</p>
<p>I enjoyed hanging out with people during and after the meetup. There were many people from Java EE 7, Java 8, Android and Scala camps. Many people share their interests between the areas and it&#8217;s no surprise to have seen so many people in the room as the topics were very well selected to attract attention. Being able to listen to the superb speaker line-up talking about the many interesting things in Java space is rarely possible. And all in my town! I could simply not miss the meetup!</p>
<p>After the meetup, I hung out with around 20 people who celebrated the release of <strong>Scala 2.11</strong> as well as to continue talking about future project ideas with what we could learn during the meeting. Very lovely atmosphere. Wish you were with us. It&#8217;s the meeting I surely never forget that gave me a fast-paced introduction to Java 8. Thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/04/warszawajug-meetup-about-java8-and-later-celebrating-scala-2-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting into Akka (and other Scala open source projects) by sbt</title>
		<link>http://blog.japila.pl/2014/04/getting-into-akka-and-other-scala-open-source-projects-by-sbt/</link>
		<comments>http://blog.japila.pl/2014/04/getting-into-akka-and-other-scala-open-source-projects-by-sbt/#respond</comments>
		<pubDate>Sun, 13 Apr 2014 19:32:07 +0000</pubDate>
		<dc:creator><![CDATA[Jacek Laskowski]]></dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[akka]]></category>
		<category><![CDATA[sbt]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://blog.japila.pl/?p=1692</guid>
		<description><![CDATA[sbt once simple is Scala now (and simple, too?) Once I reached a certain level of confidence in my understanding of sbt, I&#8217;ve looked around for open source projects that use sbt as their build tool in order to get more insight on how much we could help each other. I&#8217;ve found quite a few [&#8230;]]]></description>
				<content:encoded><![CDATA[<h2>sbt once simple is Scala now (and simple, too?)</h2>
<p><span style="line-height: 1.5em;"><a href="http://stackoverflow.com/tags/sbt/topusers">Once I reached a certain level of confidence in my understanding of sbt</a>, I&#8217;ve looked around for open source projects that use <a href="http://www.scala-sbt.org/">sbt</a> as their build tool in order to get more insight on how much we could help each other. I&#8217;ve found quite a few projects that made me sad how far their builds are from what <a href="http://www.scala-sbt.org/0.13.1/docs/Detailed-Topics/Best-Practices.html">I&#8217;ve been learning about sbt for the past months</a>. That is not to say it&#8217;s these projects&#8217; fault. Quite the contrary, sbt was once meant to be <em>simple</em> (I kept hearing it here and there for quite some time before I jumped on the sbt bandwagon), however expectations seemed to have been too high on both sides.</span><br />
<span id="more-1692"></span><br />
It should come as no surprise that people are bashing sbt for its name that once meant to have reflected <strong>simplicity</strong> (as in &#8220;simple build tool&#8221;), but finally got touted as THE &#8220;Scala build tool&#8221; to better reflect its focus on Scala as the build language (that might be a reason for losing sight of simplicity during the &#8220;transformation&#8221; to Scala as the language is far from simple for some). I think it needs to change and begs for more effort from the sbt community.</p>
<p>As <a href="https://twitter.com/jsuereth">Josh Suereth</a> has said during his talk about sbt.next &#8211; <a href="http://blog.japila.pl/2014/04/comments-about-sbt-1-0-the-interactive-build-tool-by-josh-suereth/">&#8220;Lot of investments going on in the documentation.&#8221;</a> That&#8217;s quite too often a sparse resource.</p>
<h2>Once burnt, twice shy?</h2>
<p><a href="http://www.scala-sbt.org/0.13.1/docs/Community/Changes.html">Given how much sbt has changed with 0.13</a> and the <a href="https://typesafe.com/blog/preview-of-upcoming-sbt-10-features-read-about-the-new-plugins">plans ahead</a>, it&#8217;s now the sbt community&#8217;s turn to take the stage and do the due diligence which is to help these open source projects getting better in their use of sbt (that should ultimately help both sides &#8211; the sbt community as a whole with more appreciation from the projects for how much their builds got easier with sbt). <strong>sbt 0.12.x</strong> and previous releases should be deemed <strong>highly poisonous</strong> with <strong>sbt 0.13.x</strong> <strong>the recipe</strong>.</p>
<p>Let&#8217;s treat it a call for action for the sbt community (or we&#8217;re going to end up as endangered species very soon with our hope and love for sbt). I think it&#8217;s about time!</p>
<h2>Akka and the sbt build</h2>
<p><a href="https://twitter.com/ktosopl">Konrad Malawski</a> has recently joined <a href="http://akka.io/team/">the Akka team</a> (that with <a href="https://twitter.com/gkossakowski">Grzegorz Kossakowski</a> gives two Poles in Typesafe! Woohoo!), and I decided to celebrate the (not-so-small) change in Konrad&#8217;s career by embracing Akka in my tooling. I&#8217;m sure Konrad will like it (don&#8217;t you?)</p>
<p>I usually get myself engaged in an open source project by the sources (starting with compilation and reviewing the docs) and books (if they&#8217;re available). Akka was no exception and since I&#8217;m interested in sbt I couldn&#8217;t resist doing both &#8211; reviewing the Akka sources with their sbt build as the first gig. I&#8217;ve also got three books about Akka on my shelf &#8211; <a href="http://www.artima.com/shop/akka_concurrency">Akka Concurrency</a>, <a href="http://shop.oreilly.com/product/0636920028789.do">Effective Akka</a>, and <a href="http://bleedingedgepress.com/our-books/developing-an-akka-edge/">Developing an Akka Edge</a> &#8211; and there are quite a few coming (to the press or my shelf) &#8211; <a href="http://www.manning.com/roestenburg/">Akka in Action</a> and <a href="http://www.packtpub.com/akka-java-applications-essentials/book">Akka Essentials</a> (let me know if I&#8217;ve missed any).</p>
<p>To make the story short &#8211; there&#8217;s room for improvement in Akka <a href="https://github.com/akka/akka/tree/master/project">build-</a> and <a href="http://doc.akka.io/docs/akka/current/dev/building-akka.html">documentation-wise</a> (which again should come as no surprise as it&#8217;s a sort of fate of open source projects that usually focus on the code with community and documentation as a second thought). I know far too many people who&#8217;d like to get into Scala and one of the big open source projects, and think with Konrad aboard, Akka might be a good fit (and since there&#8217;s the sbt build they&#8217;ll learn the tool, too).</p>
<p>See you on <a href="https://github.com/jaceklaskowski">GitHub</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.japila.pl/2014/04/getting-into-akka-and-other-scala-open-source-projects-by-sbt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
