<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Praveer's Musings</title>
    <description>This is a place where Praveer shares his learnings</description>
    <link>https://praveer09.github.io</link>
    <atom:link href="https://praveer09.github.io/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Practical Guide to Java Stream API</title>
        <description>
          
          Stream API was introduced in Java 8. It provided a declarative programming approach to iterate and perform operations over a collection. Until Java 7, for and for each were the only options available, which was an imperative programming approach. In this article I will introduce you to the Stream API...
        </description>
        <pubDate>Sat, 24 Nov 2018 00:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2018/11/24/practical-guide-to-java-stream-api/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2018/11/24/practical-guide-to-java-stream-api/</guid>
      </item>
    
      <item>
        <title>Offline installation of Python packages and Ruby gems</title>
        <description>
          
          In this article I will show how one can perform offline installation of Python packages and Ruby gems. For Python packages I will be using pip and cached wheels. For Ruby gems I will be using RubyGems. Need for offline installation Often on production systems there are security policies of...
        </description>
        <pubDate>Tue, 06 Mar 2018 00:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2018/03/06/offline-installation-of-python-packages-and-ruby-gems/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2018/03/06/offline-installation-of-python-packages-and-ruby-gems/</guid>
      </item>
    
      <item>
        <title>Using Java 8's Function interface for extension</title>
        <description>
          
          In this article I will show how existing interfaces can be extended to provide additional features by using the Function interface, introduced in Java 8, without breaking existing code. I will show, through practical examples, the usages of the apply, compose and andThen methods from the Function interface. Let’s consider...
        </description>
        <pubDate>Fri, 03 Nov 2017 00:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2017/11/03/using-java-8-function-interface-for-extension/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2017/11/03/using-java-8-function-interface-for-extension/</guid>
      </item>
    
      <item>
        <title>Practical Guide to Java 8’s Date Time API</title>
        <description>
          
          I will be covering the features of the Java 8’s Date Time API from a practical standpoint, which means those features that a developer uses on a daily basis. This API was introduced as part of the JSR-310. In addition to improvements over existing Date and Calendar in representing date...
        </description>
        <pubDate>Fri, 03 Mar 2017 00:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2017/03/03/practical-guide-to-java-8-s-date-time-api/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2017/03/03/practical-guide-to-java-8-s-date-time-api/</guid>
      </item>
    
      <item>
        <title>Spring up an application quickly with Spring Boot</title>
        <description>
          
          I have created a video, in which I show how easy it is to spring up an application quickly with Spring Boot. Spring Boot does this by using multiple frameworks and tools, both from Spring’s ecosystem and outside, and combining them with sensible configurations. As a result decisions around concerns...
        </description>
        <pubDate>Sat, 05 Nov 2016 06:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/11/05/spring-up-an-application-quickly-with-spring-boot/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/11/05/spring-up-an-application-quickly-with-spring-boot/</guid>
      </item>
    
      <item>
        <title>How functional programming helps me write clean code</title>
        <description>
          
          I have been writing code for several years now. One thing that I have realized is that I have spent much more time in reading code than writing code. Hence, as a part of continuous improvement, I invest a lot of time in learning new techniques to write clean code....
        </description>
        <pubDate>Thu, 04 Aug 2016 20:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/08/04/how-functional-programming-helps-me-write-clean-code/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/08/04/how-functional-programming-helps-me-write-clean-code/</guid>
      </item>
    
      <item>
        <title>Using asynchrony to reduce response times in Java 8</title>
        <description>
          
          Java 8, among other changes, had introduced CompletableFuture which has made writing asynchronous programs in Java easy. In this article I will be using CompletableFuture to explain how asynchronous programs are written and what value asynchronous programs bring in the context of backend services’ response times. I will also be...
        </description>
        <pubDate>Wed, 27 Jul 2016 22:30:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/07/27/using-asynchrony-to-reduce-response-times/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/07/27/using-asynchrony-to-reduce-response-times/</guid>
      </item>
    
      <item>
        <title>Book Review - Soft Skills: The software developer's life manual</title>
        <description>
          
          I started year 2016 with reading a book that I came across while I was searching for a book that would benefit me as a developer. I am glad I read this book. This book has not only helped me professionally, but also personally. This is one of the most...
        </description>
        <pubDate>Tue, 19 Jul 2016 03:30:00 -0700</pubDate>
        <link>https://praveer09.github.io/book-review/2016/07/19/book-review-soft-skills/</link>
        <guid isPermaLink="true">https://praveer09.github.io/book-review/2016/07/19/book-review-soft-skills/</guid>
      </item>
    
      <item>
        <title>Java 8 Optional as a Monad</title>
        <description>
          
          Lately there has been lot of discussions around functional programming and object oriented programming and their differences. A few functional programming constructs had also been introduced in Java 8 release a couple of years back. Since then I have been exploring functional programming and I have realized that using a...
        </description>
        <pubDate>Thu, 14 Jul 2016 09:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/07/14/java-8-optional-as-a-monad/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/07/14/java-8-optional-as-a-monad/</guid>
      </item>
    
      <item>
        <title>REST Error Responses in Spring Boot</title>
        <description>
          
          The format of error responses from REST web services has always been a topic of grey area for me. According to me, whatever format you choose, it should give enough information to the clients, consuming the REST web services, so that the clients can handle the error situations gracefully. Spring...
        </description>
        <pubDate>Thu, 07 Jul 2016 20:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/07/07/rest-error-responses-in-spring-boot/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/07/07/rest-error-responses-in-spring-boot/</guid>
      </item>
    
      <item>
        <title>Writing Comparators - The Java 8 Way</title>
        <description>
          
          Java 8 introduced a few default methods and static factory methods on the Comparator interface using which developers can write Comparators in a declarative way. The Comparator interface combines the principles from Builder Pattern, Factory Method Pattern, Decorator Pattern and Functional Programming to come up with a very expressive API....
        </description>
        <pubDate>Mon, 20 Jun 2016 19:30:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2016/06/20/writing-comparators-the-java8-way/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/06/20/writing-comparators-the-java8-way/</guid>
      </item>
    
      <item>
        <title>RxJava - Part 3 - Multithreading</title>
        <description>
          
          RxJava makes it easy to write asynchronous and concurrent applications. To be able to do that you will have to write programs that get executed on multiple threads. In this article I will show how RxJava helps in writing multithreaded programs using Scheduler and Observable’s subscribeOn() and observeOn() methods. The...
        </description>
        <pubDate>Mon, 29 Feb 2016 10:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2016/02/29/rxjava-part-3-multithreading/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/02/29/rxjava-part-3-multithreading/</guid>
      </item>
    
      <item>
        <title>RxJava - Part 2 - Creating an Observable</title>
        <description>
          
          An Observable is the heart of RxJava. It is the source of data or events in Reactive Programming. RxJava provides many methods in its library to create an Observable. Choosing which one to use can be difficult. My goal from this article is to help you in making this choice...
        </description>
        <pubDate>Sun, 21 Feb 2016 01:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2016/02/21/rxjava-part-2-creating-an-observable/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/02/21/rxjava-part-2-creating-an-observable/</guid>
      </item>
    
      <item>
        <title>RxJava - Part 1 - A Quick Introduction</title>
        <description>
          
          RxJava is a library that helps programmers to write asynchronous, concurrent and resilient applications. Using RxJava you write programs in reactive programming paradigm. In this article I will be providing a quick introduction to reactive programming and RxJava. Before we dive into more details, let’s see a real world example....
        </description>
        <pubDate>Sat, 13 Feb 2016 13:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2016/02/13/rxjava-part-1-a-quick-introduction/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/02/13/rxjava-part-1-a-quick-introduction/</guid>
      </item>
    
      <item>
        <title>Testing REST APIs with REST-assured</title>
        <description>
          
          REST APIs are HTTP-based web services that adhere to REST architectural constraints. If you look up now-a-days systems that talk to each other over web, it is highly probable that you will find REST APIs being used. In this article I will focus on REST-assured, a tool from Jayway for...
        </description>
        <pubDate>Sat, 06 Feb 2016 04:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2016/02/06/testing-rest-apis-with-rest-assured/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/02/06/testing-rest-apis-with-rest-assured/</guid>
      </item>
    
      <item>
        <title>Scoped Objects in Dagger 2</title>
        <description>
          
          When you use Dependency Injection, you may want to create objects that have different life-cycles. As an example, you may want some objects to live as long as the application lives, and some to live only for a short duration, like only for the duration of a request. Such objects...
        </description>
        <pubDate>Sat, 23 Jan 2016 01:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2016/01/23/scoped-objects-in-dagger-2/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2016/01/23/scoped-objects-in-dagger-2/</guid>
      </item>
    
      <item>
        <title>Writing Test Data Builders Made Easy With Kotlin</title>
        <description>
          
          In this article I will be focusing on few features of Kotlin that help in writing concise and readable code. To explain the features, I will be using the concept of Test Data Builders, as described in the book Growing Object-Oriented Software, Guided by Tests. I hope that by the...
        </description>
        <pubDate>Sat, 26 Dec 2015 10:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2015/12/26/writing-test-data-builders-made-easy-with-kotlin/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2015/12/26/writing-test-data-builders-made-easy-with-kotlin/</guid>
      </item>
    
      <item>
        <title>Understanding Thread Interruption in Java</title>
        <description>
          
          You may come across use cases where you would need to perform some long running tasks on separate threads. You may have to request these tasks to finish doing their work, may be even before the tasks are completely done, so that the threads they would be running on can...
        </description>
        <pubDate>Sun, 06 Dec 2015 01:00:00 -0800</pubDate>
        <link>https://praveer09.github.io/technology/2015/12/06/understanding-thread-interruption-in-java/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2015/12/06/understanding-thread-interruption-in-java/</guid>
      </item>
    
      <item>
        <title>Using Optional to Specify Presence or Absence of a Value</title>
        <description>
          
          Java 8 introduced Optional which serves as a container for values abstracting out the presence or absence of values. In this article I will be showing how using it helps in writing null safe code. Let’s say you have to use an interface to write some logic and you see...
        </description>
        <pubDate>Sat, 19 Sep 2015 02:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2015/09/19/using-optional-to-specify-presence-or-absence-of-a-value/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2015/09/19/using-optional-to-specify-presence-or-absence-of-a-value/</guid>
      </item>
    
      <item>
        <title>Functional Programming for the Object Oriented Minds</title>
        <description>
          
          In this article I make an attempt to share my understanding of functional programming and how it can help in improving your daily work. If you are one of those who build software solutions for everyday business problems, there is a high chance that you might be using an object...
        </description>
        <pubDate>Fri, 13 Jun 2014 14:00:00 -0700</pubDate>
        <link>https://praveer09.github.io/technology/2014/06/13/functional-programming-for-the-object-oriented-minds/</link>
        <guid isPermaLink="true">https://praveer09.github.io/technology/2014/06/13/functional-programming-for-the-object-oriented-minds/</guid>
      </item>
    
  </channel>
</rss>
