Skip to content
Venish Joe Clarence

Archives

All the articles I've archived.

2018 1
January 1
  • A Go-based utility that geocodes a plain text list of cities and landmarks into latitude/longitude coordinates using the Google Geo API, assigns visit frequency weightage, and generates JavaScript data for rendering a Google Maps heatmap visualization.

2017 1
April 1
  • Statically analyze and programmatically modify compiled .class files without decompilation. Covers a practical example of changing a bytecode equality operator to alter program behavior, along with additional capabilities like method injection and code insertion.

2010 1
April 1
  • A design pattern for implementing dynamic, user-configurable column layouts in JSP applications using Apache Struts, leveraging a singleton class to store per-user column preferences in the servlet container's Application Context.

2009 9
November 1
  • Performance comparison of Java string concatenation methods — the + operator, String.concat(), StringBuffer.append(), and StringBuilder.append() through benchmarking with Perf4J and bytecode analysis.

October 5
  • Recursive file tree traversal in Java using NIO.2's FileVisitor and SimpleFileVisitor interfaces, including pattern-based file searching with PathMatcher, symbolic link handling via FileVisitOption, and traversal control through FileVisitResult.

  • Dynamically load and execute compiled Java classes from byte array using a custom ClassLoader, without writing physical class files to disk. Highlights use cases like license validation, encrypted class delivery, and secure remote code execution.

  • Monitoring a directory for file system changes using Java NIO.2 WatchService API introduced in JDK 7, offering a more efficient alternative to manual polling threads.

  • Use Java's SignedObject with DSA public-key cryptography to digitally sign serialized Java objects before network transfer. The signed objects are verified at the receiving end ensuring data integrity and authenticity without relying on shared secrets.

  • Proactively prevent OutOfMemoryError crashes in Java by using Apache Derby's LowMemory utility class to set memory watermarks, allowing applications to gracefully degrade rather than terminate when heap space is exhausted.

September 2
  • A Java HTTP proxy server using socket-based request-response forwarding with configurable port binding, timeout handling, and continuous listening loop architecture.

  • Recovering encrypted database passwords from WebLogic server configuration files.

August 1
  • Deterministic serial key generation approach for Java applications. It covers generating 18-character serial keys from user input strings and validating them by regenerating and comparing the expected output.