Tech Talk

Digital Transformation, Artificial Intelligence, Machine Learning, IoT, Big Data Analytics, Enterprise Architecture, Performance Engineering, Security, Design and Development tips on Java and .NET platforms.

Tuesday, July 31, 2012

Ruminating on Session Replication

›
In any web application cluster, we need to configure Session Replication for failover and high availability. While configuring session repl...
Monday, July 30, 2012

Exploring Google Guava

›
I am pretty impressed with the simplicity of Google Guava API. We have been using Apache Commons for many years, but Guava has good suppor...
Thursday, July 26, 2012

Some interesting code..to tickle your brain cells

›
Found this code over the internet :) ...Took me some time to debug. Please copy-paste the below code in eclipse and start analysing - why t...

Using Netty - Lessons learned

›
We were building a ISO-8583 equivalent card transaction simulator using the powerful Netty framework.The simplicity of the netty design is...
Tuesday, July 10, 2012

UIaaS - UI as a Service

›
Some time back, Salesforce popularized the term - UIaaS (UI as a Service), when they launched VisualForce . UIaaS essentially means the a...
Tuesday, June 12, 2012

HSQL in-memory database

›
Recently, we were experimenting with the HSQL in-memory database for a particular usecase. It was interesting to observe the default behavi...
Monday, June 11, 2012

Dynamic reports using Jasper

›
Today, I spend a good 1 hr brainstorming the design to build dynamic reports in Jasper. A lot of customers demand the need to create dynam...
Tuesday, June 05, 2012

Validations - on client side or server side or both?

›
A few years back, many developers spend a lot of time in coding validation rules for web forms - both on the client side as well as the ser...

Object Model or Data Model - What comes first?

›
Throughout my career, I have asked this question multiple times to myself - what to model first? The database entities or the object model?...

What exactly is Domain Driven Design (DDD)?

›
We have been using many of the principles and patterns of DDD over the past many years. During domain modeling we have often used the conc...
Thursday, May 31, 2012

Byte code instrumentation and the ORM magic

›
All ORM tools use some kind of byte-code instumentation to do the persistance magic behind the scenes. But as an architect, it is important...

Mapping between Entity Objects and DTOs

›
Very often, we need to map between our Entity objects and DTO's. This mapping code can be quite tedious to write. There is a lot of ho...
Wednesday, May 30, 2012

Performance benchmarks

›
Every development project needs a formal performance engineering process - one that emphasizes on early performance testing and benchmarkin...

JavaDB (Derby) in JDK 1.6 and above

›
JDK 1.6 and above ship with a default pure Java database called as " JavaDB ". Is is based on the open source Apache Derby proje...
Monday, May 28, 2012

What is a framework?

›
When someone says they have defined a "framework", what does it mean? Is a framework just a library of resuable components? Or is...
Thursday, May 24, 2012

Eclipse Memory Analyser

›
Read the following good reviews on Eclipse Memory Analyser . Looks like it can read both SUN JVM HPROF memory dumps as well as IBM JDK dump...

C heap vs Java heap

›
Found this interesting discussion on StackOverFlow around C Heap and Java Heap. A good read and its important to understand that the JVM i...
Thursday, May 17, 2012

RAID basics

›
Found this good blog that explains in simple terms, the various levels of RAID (Redundant Array of Independent Disks). RAID 10 has becom...
Wednesday, April 25, 2012

'volatile' keywork in Java

›
Found this excellent article on the web explaining the 'volatile' keyword in Java and how it can be used for concurrency. The tuto...

Difference between Concurrent Collections and Synchronized Collections in JDK

›
Traditionally, we have also used object locks (semaphores) and synchronized methods to make our collections thread-safe. But having an excl...
Friday, April 20, 2012

Google Chart APIs

›
The last time (around 1 year ago), when I had evaluated Google Charts API, I was a bit disappointed. The Chart API only enabled you to embe...

JavaScript coding guidelines

›
With RIA applications becoming the norm, developers have to deal with a lot of JavaScript code. It is important to have proper coding conve...

JAMon lives on !

›
I have been a big fan of JAMon tool for monitoring Java applications.It is lightweight and has a cool UI that gives you the stats you want...
Thursday, April 19, 2012

Passing wilcard * in Runtime.exec() command

›
One of the projects I was consulting on approached me with a peculiar problem. The application was executing unix commands from a Java prog...

Cool library for Java NIO

›
I often felt the need to write a wrapper class libaray around Java NIO packages to reduce the complexity for developers. I was pleased to f...
Friday, April 06, 2012

Closed Loop vs Open Loop Models in Card Processing

›
Found this good article on the internet that describes the differences between closed loop and open loop models. Excerpts from the article...
Thursday, March 29, 2012

The Architecture of Open Source Applications

›
Found this cool book on the web, that explains the history behind many successful open source projects. The chapters also contain a good ...
Monday, March 26, 2012

Techniques for website design on all devices

›
Today, there is a growing demand to create websites that can render across multiple devices such as desktop browsers, tables and smart phone...
Friday, March 23, 2012

Lightweight UML sketching tool - UMLet

›
For years, I have been searching for a lightweight tool to quickly draw UML diagrams - in order to brainstorm an idea with my team. The trad...
Monday, March 05, 2012

How to ensure that IOCP is used for async operations in .NET?

›
In my last post , I had blogged about IO Completion Ports and how they work at the OS kernel level to provide for non-blocking IO. But how...
‹
›
Home
View web version
Powered by Blogger.