Mental block on personal projects & lessons learned

I have a big question for which I did try to search around and get some guidance. The question is something like ..

Read More..

Numerology calculations with F#

Disclaimer: Lets agree to treat Numerology as Magic and focus on the FSharp part. I pick this particular subject as good use case to apply a lot of what F# brings to the table. Please treat this as just some fun requirements to demonstrate F# types, functions and general functional programming.

Read More..

Using Paket - a very simple introduction

Paket is a dependency manager for .NET and Mono projects. Instead of managing references to assemblies (irrespective of the source - nuget, local or whatever) in the project files; paket provides a (in my opinion) better way to organize these references. More information and documentation for Paket is available at here.

Read More..

Windbg Tip - Cannot break in Windbg when attached to live process

I am sure some of you have encountered the issue where Windbg doesn’t break when you attach to a live process (I saw this more on the 64-bit one than the 32-bit one) & the only way seem to be to kill the debugger.

Read More..

Scala - hosting a websocket server using Atmosphere/Nettosphere

Websockets are one of the means to push data from a backend application to a web application running in the browser. In this post, we will look at hosting a web socket server within a java/scala application using Atmosphere/Nettosphere. Atmosphere is an asynchronous application development framework that allows development of realtime applications.

Read More..

Clojure - Getting started with Web Development

There are several leiningen templates to create a basic web application in Clojure. But in this post, I will describe how you can create a basic web application that uses Clojure on the backend and ClojureScript on the front-end. The goal is to help understand all the pieces that are involved and how they need to come together so that you can better understand what some of the templates are actually doing it under-the-hood.

Read More..

Clojure Tidbits - Learning from reviews

Recently, I have been hanging out at #clojure, talking to experts in clojure about various things and using that to learn something practical about clojure. So far, the experience has been invaluable. I believe I learnt at a much better rate from my two days at #clojure than I did this year through various sources of clojure. Anyway, I wanted to simply model data "the clojure way" & sought out some help from the experts. In this post, I will present the code I came up with and then the comments I received followed by the revised code, etc.

Read More..

Clojure Tidbits - Consecutive elements in a sequence?

I have recently come across an interesting question that need to be solved using functional programming techniques. So I thought, I shall give it a shot in clojure.

Read More..

Tail Recursion in Scala and Clojure

In this post, we will look at tail recursion and how it is supported in Scala and Clojure. We will start with some simple examples in Scala followed by examples on how "recur" - a special form in clojure that is used as a way around the lack of support for Tail Call Optimizations in JVM.

Read More..

Simple Code!

I lead a small team of engineers at work and I always bring up the topic of "writing good code" to my team during our regular discussions. So what does good code mean? I will try to write down my thoughts on the subject here.

Read More..

Notes - Programming Pearls

Programming Pearls comes highly recommended from quite a few people. I am sucker for good books and I love owning highly recommended books. I own a lot of books on CS and quite a few photography books. So anytime I see someone recommending a book that I do not own - I gotta have it. :)

Read More..

Reading Notes - Google File System

As part of my readings, I am going to make some important points here from the paper - The Google File System. Google File System is a scalable distributed file system for large distributed & data-intensive applications. This paper is the inspiration for HDFS, the file system that powers Hadoop.

Read More..

Lucene Architecture Notes

Apache Lucene is a very popular search library/framework used by 100's of companies. Since it is used everywhere and that I keep finding a few positions that really interest me but require search experience, I thought the least I could do is look at Lucene, its architecture. Then there are two additional projects on top of Lucene whcih are also popular - Apache Solr and ElasticSearch. The intention is to look at their architecture as well.

Read More..

Scala - Working with REST service calls and handling JSON

In this post, I will try to walk through an example in Scala which shoud cover the following concepts:

Read More..

Notes from Architecture of Open Source Applications - Scalable Web Architecture & Distributed Systems

In this post, I capture some notes from reading the Scalable Web Architecture & Distributed Systems article on the Architecture Of Open Source Applications - Volume 2. The goal of this particular chapter was to cover the key issues to consider when designing large websites, as well as some of the building blocks used for this purpose.

Read More..