Blogs


Flushing Metrics in Dropwizard Commands

138 - Fri, Aug 2, 2019

Managing environment lifecycles for Dropwizard Commands

137 - Sun, Jul 28, 2019

Looking up Enum types and values in Postgres

136 - Thu, May 9, 2019

Viewing Sequence ownership information in Postgres

135 - Tue, May 7, 2019

Understanding trailing @ processing in SAS input

134 - Sat, Mar 23, 2019

Importing the SASUSER datasets in SAS Studio

133 - Sat, Mar 23, 2019

My talk at GraphQL Summit 2018

132 - Sat, Nov 10, 2018

Formatting Java Instant for resolutions

131 - Sat, Jun 9, 2018

FreeBuilder plugin for IntelliJ

130 - Sat, May 5, 2018

Command line clients for gRPC - polyglot

129 - Fri, Apr 6, 2018

Command line clients for gRPC - grpcurl

128 - Wed, Apr 4, 2018

A Jackson and FreeBuilder quirk

127 - Fri, Mar 23, 2018

Net::HTTP and the simplest of explanations

126 - Thu, Mar 22, 2018

Python URL manipulation revisited

125 - Tue, Sep 26, 2017

Uploading a standalone artifact to Nexus 3

124 - Fri, Aug 18, 2017

Implementing feature toggles for a Spring Boot application - Part 4

123 - Wed, Nov 30, 2016

Implementing feature toggles for a Spring Boot application - Part 3

122 - Tue, Nov 29, 2016

Implementing feature toggles for a Spring Boot application - Part 2

121 - Sun, Nov 27, 2016

Implementing feature toggles for a Spring Boot application - Part 1

120 - Tue, Nov 22, 2016

Setting up a secure etcd cluster behind a proxy

119 - Fri, Nov 11, 2016

A very basic introduction to deploying a Java application using Kubernetes

118 - Sat, Nov 5, 2016

Handling Deserialization errors in Spring Redis Sessions

117 - Wed, Nov 2, 2016

CSRF Protection with Spring Security and Angular JS

116 - Thu, Jul 21, 2016

Controlling Redis auto-configuration for Spring Boot Session

115 - Sat, Jul 16, 2016

JWT authentication with Spring Web - Part 5

114 - Thu, Jul 14, 2016

JWT authentication with Spring Web - Part 4

113 - Fri, Jul 8, 2016

JWT authentication with Spring Web - Part 3

112 - Wed, Jul 6, 2016

JWT authentication with Spring Web - Part 2

111 - Sun, Jul 3, 2016

JWT authentication with Spring Web - Part 1

110 - Sun, Jul 3, 2016

JSON logging for Spring applications

109 - Thu, Jun 30, 2016

Injecting dependencies into a Spring @Configuration

108 - Wed, Jun 29, 2016

Filtering responses in Spring MVC

107 - Wed, Jun 8, 2016

On Inverness

106 - Sun, Jun 5, 2016

Deprecating domain events in Axon

105 - Sun, Apr 24, 2016

Programmable exit codes for spring command line applications - 2

104 - Wed, Apr 20, 2016

Programmable exit codes for Spring command line applications

103 - Mon, Apr 18, 2016

Using custom arguments in Spring MVC controllers

102 - Sat, Jan 30, 2016

Authentication for Apache Camel HTTP components

101 - Wed, Dec 16, 2015

Thoughts on Open Graph tags

100 - Tue, Dec 15, 2015

Integration testing Spring command line applications

99 - Fri, Dec 11, 2015

Integration testing challenges for non-web Spring applications

98 - Fri, Dec 11, 2015

How thinking of Documentation as Legislation helped me become a better programmer

97 - Tue, Dec 8, 2015

Implementing custom annotations for Spring MVC

96 - Sun, Dec 6, 2015

Validating RequestParams and PathVariables in Spring MVC

95 - Sat, Dec 5, 2015

Testing async responses using MockMvc

94 - Tue, Nov 24, 2015

Running multiple applications in the same Tomcat installation

93 - Tue, Jun 9, 2015

Making sense of Cloud Foundry security group declarations

92 - Fri, May 22, 2015

Configuring Cloud Foundry Java Memory Parameters

91 - Thu, May 21, 2015

Disputed territories and merging shapes and features

90 - Fri, Aug 8, 2014

A list of GIS tools

89 - Sun, Aug 3, 2014

Importing the Yelp dataset into MongoDB

88 - Sat, Aug 2, 2014

Clojure Dojo - Levenshtein edit distance

87 - Thu, Mar 20, 2014

A simple JMeter test with login

86 - Mon, Feb 17, 2014

The SNDP - NSS political experiment of 1980s

85 - Sun, Feb 9, 2014

What is life?

84 - Tue, Dec 10, 2013

A rainy distraction

83 - Thu, Nov 21, 2013

The fear of being wrong on the Internet

82 - Tue, Oct 15, 2013

Implementing Rate Limiting in Rails - Part 2

81 - Sun, Oct 13, 2013

Implementing Rate Limiting in Rails - Part 1

80 - Sat, Oct 12, 2013

Python Hack - Dynamically override an object's attribute

79 - Mon, Oct 7, 2013

Fitting an Image in to a Canvas object

78 - Thu, Oct 3, 2013

Accessing Environment Variables in Gradle

77 - Tue, Oct 1, 2013

Reading user input in Gradle scripts

76 - Tue, Oct 1, 2013

Ruby, Named Capture Groups and Local Variables

75 - Tue, Oct 1, 2013

Named Capture Groups in Regular Expressions

74 - Sun, Sep 29, 2013

Decomposing URLs in Python

73 - Thu, Sep 26, 2013

On Halal Burgers

72 - Tue, Sep 17, 2013

Shared history in Bash

71 - Sun, Sep 15, 2013

Managing Gemsets in Rbenv

70 - Thu, Sep 12, 2013

Looking up Compiler params used to compile a Ruby version

69 - Sun, Sep 8, 2013

Navigating Stacktraces in Emacs

68 - Thu, Aug 22, 2013

A brief History of Times New Roman

67 - Wed, Aug 21, 2013

My Tinfoil setup

66 - Sat, Aug 17, 2013

Python's bool type

65 - Thu, Aug 15, 2013

When Link titles were for the early adopters

64 - Sun, Aug 11, 2013

When URL shortening results in longer URLs

63 - Sun, Aug 11, 2013

Fusing the old media and the new

62 - Sat, Aug 10, 2013

Biriyani and me

61 - Fri, Aug 9, 2013

Internet in Yemen : A Tale of Woe

60 - Thu, Aug 8, 2013

Graph databases 1 - Modeling

59 - Fri, Aug 2, 2013

Validating JSON in Emacs

58 - Wed, Jul 31, 2013

My thoughts on Android fragmentation - It is not a bad thing

57 - Tue, Jul 30, 2013

മഴയുടെ ഓർമ്മകൾ

56 - Wed, Jul 24, 2013

Fireworks in the paddy fields - memories of a summer

55 - Mon, May 27, 2013

Emacs hack: Viewing Git logs while composing commit messages

54 - Mon, Apr 29, 2013

Configure Git's comment character

53 - Sun, Apr 14, 2013

My experience working remotely

52 - Thu, Apr 11, 2013

Oh I can build it in...

51 - Mon, Apr 8, 2013

JavaScript, clipboard access and hidden flash widgets

50 - Fri, Apr 5, 2013

Reducing Emacs startup time while committing

49 - Tue, Jan 22, 2013

First week in San Francisco

48 - Mon, Jan 21, 2013

Books read in 2012

47 - Wed, Jan 2, 2013

My first Firefox plugin: GetCache - View cached version of the current page

46 - Thu, Nov 29, 2012

GetCache - A Chrome plugin to view cached version of the current page

45 - Wed, Nov 28, 2012

On REST, Content-Type, Google Chrome and Caching

44 - Tue, Nov 27, 2012

How Browsers Detect If You Are Offline

43 - Thu, Nov 22, 2012

Dear Content Creator, Your URL Shortener Is Pointless

42 - Thu, Aug 23, 2012

Giving up the Samba for the Tiki-taka

41 - Tue, Aug 21, 2012

Curse of the Community Shield?

40 - Wed, Aug 15, 2012

Why I am not on Facebook

39 - Sat, Aug 11, 2012

D3.js Workshop

38 - Wed, Aug 1, 2012

Visualisation - How European clubs dominate their leagues

37 - Sat, Jul 21, 2012

Social Networks and their URL Shorteners

36 - Tue, Jul 17, 2012

XConf 6 - Data, My Heart!

35 - Mon, Jul 16, 2012

Understanding Python's "with" statement

34 - Mon, Jul 9, 2012

Heredocs in Ruby and Python

33 - Wed, Jul 4, 2012

Micro Journal - simple Git-backed journal in Python

32 - Mon, Jun 25, 2012

VodQA NCR: Maintaining Large Test Suites

31 - Sun, Jun 24, 2012

Know Your Tools - Don't Shoot Yourself in the Foot

30 - Wed, Jun 6, 2012

Managing security certificates from the console - on Windows, Mac OS X and Linux

29 - Tue, Jun 5, 2012

The Spiral of Learning

28 - Wed, May 30, 2012

You Crash and then You Learn

27 - Tue, May 29, 2012

Indian and Pakistani cricketers - who make better debuts?

26 - Fri, May 11, 2012

Fixing Flyspell for Emacs in Mac OS X

25 - Fri, May 4, 2012

Finding un-merged commits with git cherry

24 - Sun, Apr 29, 2012

Bullet proof Jenkins setup

23 - Fri, Feb 3, 2012

Why your project should have a Getting Started guide.

22 - Tue, Jan 17, 2012

Debugging: C Sharp's HttpWebRequest, 100-Continue and nginx

21 - Mon, Jan 16, 2012

Banyan Tree: Football and Politics

20 - Mon, Dec 5, 2011

Wikipedia Page Hopping

19 - Tue, May 17, 2011

Friday

18 - Thu, May 5, 2011

Poorly executed xkcd spoof

17 - Wed, Mar 30, 2011

Empathy Log Parser

16 - Thu, Mar 24, 2011

Binary Signature Art

15 - Wed, Mar 23, 2011

Saying Good Bye is tough

14 - Mon, May 10, 2010

Java Arrays in JRuby

13 - Tue, Mar 16, 2010

Athletic - The European campaign and a Basque special

12 - Sat, Feb 6, 2010

Missing the game

11 - Fri, Feb 5, 2010

Autorun.py - Execute stuff on file change

10 - Sat, Jan 9, 2010

TWU Graduation

9 - Tue, Sep 22, 2009

A lot to learn

8 - Fri, Aug 21, 2009

Yet another week in Bangalore

7 - Sun, Aug 16, 2009

Bangalore Journal

6 - Sat, Aug 8, 2009

Ajmal Qasab and his friends should hang their heads in shame

5 - Thu, Apr 16, 2009

When I used to love Cricket

4 - Thu, Feb 26, 2009

Of Birthdays and Anniversaries

3 - Fri, Jan 30, 2009

Tough Love

2 - Sun, Jan 18, 2009

Athletic Bilbao - Warriors in a world of Mercenaries

1 - Sat, Nov 8, 2008