Author image

Aspect Oriented Programming

Aspect Oriented Programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding additional behavior to existing code without modifying the code itself, instead separately specifying which code is modified via a 'pointcut' specification, such as “log all function calls when the function's name begins with 'set'”. This allows secondary behaviors (eg logging) to be added to a program without cluttering the meaty code that's core to the functionality.


  • The AspectConfiguration specifies which aspect applies to which method of an object
  • Each aspect is essentially a method (or a separate class containing a group of those aspect-methods) written in an aspect-oriented language (or annotation, or through an idiom in an existing language).
  • Aspects are wrapped 'before', 'after' or 'around' methods. For example we...

Author image

Archaic Browser

A minimal and barely functional Browser ftw!
Uses Java 8 and java.awt framework for graphics and windows.

There are many websites that don't even work, or they do work but it's too hard to use them.
It's kind of obsolete now. But it served me well when I was learning these things way back. The code is thoroughly commented out. Instead of leaving the project to rot on my dusty old disk maybe it will be helpful to somebody in some way.

Developed with IntelliJ IDEA on Windows 8.1 x86_64.

Author image

Hibernate Object Relational Mapping (ORM) Tutorial

Hibernate is a Java open source, lightweight & performant ORM framework that simplifies the development of Java server applications when interacting with a database. ORM stands object relational mapping. It maps between an Object oriented language (Java here) and a Relational language (SQL).

I have developed this demo on my Windows 8.1 x86_64 computer, using IDEA 2018.1 and for the SQL database side I've used XAMPP v3.2.2 and MySQL on port 6180.

This demo provides all you need to get setup in Java with your database queries started. The main pieces of code are 4 .java files in src\main\java\ directory. The queries are database independent though and they can work no matter the database backend. I've tested this to be true on MySQL and SQLAlchemy. This is accomplished by HQL (Hibernate Query Language) the object-oriented version of SQL which Hibernate translates to behind the scenes.

Author image

Chat Room in Java

A basic Server Client application written in Java 8 with JavaFX (for a change). You have to first start up the server and then launch as many clients as you want. Then chat between the client and server. Everything is modular and bare-to-the-metal. It should work everywhere. It does the job clean!

Author image

Tile Game (Pokemon Wannabe)

A minimal but functional tile-based 2d game the likes of the good ol' Pokemon Gen 2. Pokemon Crystal being my favorite video game of all time and the one that introduced me to video games.