-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
83 lines (83 loc) · 14.1 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Prashant Bhat's Website</title>
<link>/</link>
<description>Recent content on Prashant Bhat's Website</description>
<generator>Hugo</generator>
<language>en-us</language>
<copyright>This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.</copyright>
<lastBuildDate>Tue, 19 Jul 2016 00:00:00 +0000</lastBuildDate>
<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Introducing Pustike Event Bus</title>
<link>/blog/introducing-pustike-eventbus/</link>
<pubDate>Tue, 19 Jul 2016 00:00:00 +0000</pubDate>
<guid>/blog/introducing-pustike-eventbus/</guid>
<description><p><a href="https://github.com/pustike/pustike-eventbus">Pustike EventBus</a> is a fork of <a href="https://github.com/google/guava/wiki/EventBusExplained">Guava EventBus</a>, which is probably the most commonly known event bus for Java. Most of the documentation here and test cases are from Guava itself.</p></description>
</item>
<item>
<title>Importance of Accounting</title>
<link>/blog/importance-of-accounting/</link>
<pubDate>Tue, 05 Jul 2016 00:00:00 +0000</pubDate>
<guid>/blog/importance-of-accounting/</guid>
<description><p>The importance of financial accounting practices is well known and majority of businesses have well established processes to record, summarize and analyze the historical and prospective information. Financial data is not only required to fulfill legal &amp; tax reporting obligations but it also provides an overview of operational performance through management reporting, that helps to make informed business decisions.</p></description>
</item>
<item>
<title>About Me</title>
<link>/about/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/about/</guid>
<description><a class="is-pulled-right m-2">
 <img src="/images/profile.jpg" width="200" height="257">
</a>

<p>I&rsquo;m a Java Software Architect, based in Singapore, with experience in building Financial and Supply Chain Management systems. I&rsquo;m currently developing a web application, with multi-tenant architecture, for small/medium business users to maintain their accounting data.</p>
<p><strong>Work Experience:</strong></p>
<ul>
<li>ERP Application development from the very start, by designing, developing and maintaining it, together with a very talented team.</li>
<li>Created desktop application in Java with client-server communication and rich client based user interface.</li>
<li>Implemented the ERP solution in 8 different countries and supported updates to manage growing business needs / process changes.</li>
<li>Published few of my libraries as open source projects, which are listed <a href="/projects">here</a>.</li>
</ul>
<p>I also enjoy maintaining personal accounts and doing financial consolidation of my two entities having different functional currencies.</p></description>
</item>
<item>
<title>Pustike Event Bus</title>
<link>/projects/pustike-eventbus/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-eventbus/</guid>
<description><h2 id="pustike-eventbus">Pustike EventBus</h2>
<p><a href="https://github.com/pustike/pustike-eventbus">Pustike EventBus</a> is a fork of <a href="https://github.com/google/guava/wiki/EventBusExplained">Guava EventBus</a>, which is probably the most commonly known event bus for Java. Most of the documentation here and test cases are from Guava itself.</p>
<p>EventBus is a library providing publisher/subscriber pattern for loose coupling between components(event senders and receivers), by sending messages to each other indirectly. Some objects register with the bus to be notified when certain events of interest occur. And some publish events on the bus. The bus notifies each of the registrants when the event is published. So registrant objects and event-source objects need not know about each other directly. Each may join or depart the bus at any time. Thus it enables central communication between components, simplifies the code and removes direct dependencies.</p></description>
</item>
<item>
<title>Pustike Inject</title>
<link>/projects/pustike-inject/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-inject/</guid>
<description><h2 id="pustike-inject">Pustike Inject</h2>
<p><a href="https://github.com/pustike/pustike-inject">Pustike Inject</a> is a simple dependency injection framework that implements the <a href="https://github.com/jakartaee/inject">Jakarta Injection API</a> specification.</p>
<p>Injector is the core part of this library and it tracks dependencies for types configured by module binders. A module uses the binder to define bindings, which will be used to create an Injector. When an instance of a type or of a binding key is requested, the injector returns the instance by creating it and injecting all its declared dependencies (constructor, fields and methods).</p></description>
</item>
<item>
<title>Pustike JSON</title>
<link>/projects/pustike-json/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-json/</guid>
<description><h2 id="pustike-json">Pustike JSON</h2>
<p><a href="https://github.com/pustike/pustike-json">Pustike JSON</a> library provides an <code>ObjectMapper</code> class that can create Java objects from JSON or create JSON value from Java objects, by using <a href="https://github.com/jakartaee/jsonp-api">Jakarta JSON-P</a> APIs internally.</p>
<p>The key feature of this object mapper is its ability to generate JSON values with only specified list of fields/properties of an object depending on the given context. For ex, when a list of customer objects are being shown in a select field, very few properties like code and name are required. But when editing the same customer object, many additional properties are needed which can be defined in another context. This helps in reducing the transferred data size when communicating with JSON objects in the API.</p></description>
</item>
<item>
<title>Pustike Maven Parent</title>
<link>/projects/pustike-maven-parent/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-maven-parent/</guid>
<description><h2 id="pustike-maven-parent">Pustike Maven Parent</h2>
<p>This project contains common <a href="https://maven.apache.org">Maven</a> configuration for Pustike projects and is published as a <a href="https://github.com/pustike/pustike-maven-parent">GitHub Project</a> under Apache License.</p>
<p><a href="https://maven-badges.herokuapp.com/maven-central/io.github.pustike/pustike-maven-parent"><img src="https://maven-badges.herokuapp.com/maven-central/io.github.pustike/pustike-maven-parent/badge.svg" alt=""></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-blue.svg" alt=""></a></p>
<p><strong>Usage:</strong></p>
<p>Include it in the parent section of pom.xml, as shown here:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;parent&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&lt;groupId&gt;</span>io.github.pustike<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&lt;artifactId&gt;</span>pustike-maven-parent<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">&lt;version&gt;</span>0.2.0<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/parent&gt;</span>
</span></span></code></pre></div><p><strong>Properties:</strong></p>
<ul>
<li>Project&rsquo;s source encoding is set to: <code>UTF-8</code></li>
<li><code>maven.compiler.release</code> property is set to Java version: <code>17</code></li>
</ul>
<p><strong>Dependencies:</strong></p>
<p>Test dependencies for <a href="https://junit.org/junit5">JUnit 5</a> are included.</p>
<table>
 <thead>
 <tr>
 <th>Group Id</th>
 <th>Artifact Id</th>
 <th>Version</th>
 </tr>
 </thead>
 <tbody>
 <tr>
 <td>org.junit.jupiter</td>
 <td>junit-jupiter-api</td>
 <td>5.10.0</td>
 </tr>
 <tr>
 <td>org.junit.jupiter</td>
 <td>junit-jupiter-engine</td>
 <td>5.10.0</td>
 </tr>
 </tbody>
</table>
<p><strong>Build Plugins:</strong></p></description>
</item>
<item>
<title>Pustike Persist</title>
<link>/projects/pustike-persist/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-persist/</guid>
<description><h2 id="pustike-persist">Pustike Persist</h2>
<p><a href="https://github.com/pustike/pustike-persist">Pustike Persist</a> is an object based persistence library. Using a simple configuration and annotation based entity mapping, it provides features like schema generation, sql query api to insert / update / delete objects and a fluent data finder api.</p>
<p>Using <a href="https://en.wikipedia.org/wiki/Java_Persistence_API">Java Persistence API</a> is the standard approach to object persistence in Java based applications. And it is a comprehensive and complex API to implement and use. Using a JPA implementation for persistence can add lot of overhead to small/medium sized applications. So, Pustike Persist provides a simple api to perform common SQL queries using object metadata built using JPA like annotations.</p></description>
</item>
<item>
<title>Pustike Web</title>
<link>/projects/pustike-web/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/pustike-web/</guid>
<description><h2 id="pustike-web">Pustike Web</h2>
<p>Pustike Web provides API for creating application using RESTful Web Services with a central servlet <code>DispatcherServlet</code>, having an API similar to <a href="https://github.com/jakartaee/rest">JAX-RS</a>. Applications developed using this library can be deployed in any Servlet container like other web frameworks.</p>
<p>The <code>WebServletContextListener</code> and a <code>DispatcherServlet</code> need to be declared and mapped according to the Servlet specification by using Java configuration or in web.xml. During servlet context initialization, the <a href="/projects/pustike-inject">dependency injector</a> should be configured using the <code>ServletModule</code> and other application specific modules. Application modules register resource controller classes annotated with <code>@Path</code> specifying relative path to the context. The <code>DispatcherServlet</code> delegates incoming client requests, by matching their request path pattern, to the respective controller class which does the actual processing.</p></description>
</item>
<item>
<title>Website</title>
<link>/projects/website/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>/projects/website/</guid>
<description><h2 id="website">Website</h2>
<p>Based on everyday experience, we gain better understanding of certain concepts and sometimes get new ideas/approaches to address some commonly required use cases. It may be in the field of technology or functioning of a business process or simply any topic of personal interest. But most often these thoughts are lost, if they are not documented on a regular basis or not implemented.</p>
<p>So this website is a central place to record my understandings on topics of interest and also to share with others. This also provides an opportunity for me to get feedback and learn from others having better knowledge/experience.</p></description>
</item>
</channel>
</rss>