Cloud and failure

Despite all the cloud talk and where I live, it is like the cloud mecca, for enterprises it is still quite new and many are just starting to think about it. A hard lesson that many of us learn (and partly how we amass our scars) is to design for failures. For those, who run things in their enterprises data center, are quite spoilt I think. Failures are rare, and if machines or state goes down, moving to another one isn’t really a big deal (of course it is a little more complex, and not to say, there isn’t any down time, or business loss, etc....

May 30, 2018 · 3 min · Amit Bahree

Rules of Threading (revised)

I still stand by the rules of threading , but saw this on twitter and thought it was great. How a litter of puppies can explain the rules of thread? Awesome. 😄

February 4, 2016 · 1 min · Amit Bahree

Is rand() harmful?

​I saw this awesome presentation on why rand() is considered harmful. When you need a random number, don’t call rand() and especially don’t say rand() % 100! This presentation will explain why that’s so terrible, and how C++11’s header can make your life so much easier. If you need uniqueness and non-deterministic, especially on the context of security or crypto then you need to think about a few things....

November 6, 2013 · 1 min · Amit Bahree

Automated Code Reviews with Visual Studio?

I have been thinking of doing some code ‘smelliness’ test, and am keen to automate code reviews (as much as possible). I am interested to know what tools have you guys used? I want to use the tools to find the low hanging fruits and know off the 80% of things and then we manually look at the more interesting aspects, which the tools don’t (or can’t) pick up. Ideally, I would like this as an add-in to Visual Studio, which can run as part of a build and depending on how one configures it, can get to a gated check-in and/or work-items being created in TFS which then can be assigned and tracked....

August 21, 2013 · 1 min · Amit Bahree

My TechEd Presentation - Building cross-platform Modern Apps - the Design perspective

TechEd a couple of months ago was really fun and I am grateful to Microsoft folks for giving me an opportunity to be both part of the Keynote and also have a slot in the Architecture track. Sorry it has taken me a very long time to upload my TechEd talk “Building cross-platform Modern Apps: the Design perspective”. But as they say better late than never. 😏 You can download a copy of my presentation -  Xamarin - Building cross-platform (pdf) ....

May 31, 2013 · 1 min · Amit Bahree

Fallacies of Distributed Computing

I was reading something and came across these fallacies of Distributed Computing which all beginners (to distributed computing) have. Oh how we all learn. The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn’t change There is only one administrator Transport cost is zero The network is homogeneous

July 7, 2012 · 1 min · Amit Bahree

Concurrency and CEP

The sooner we all understand the Concurrency ≠ CEP (Complex Event Processing), the better the world will be! CEP is generally used when we implement real-time systems (of course that is not the only area where CEP is used). Real-time does not mean concurrent or for that matter high-performing system. Of course there are correlations, but at the same time they are fundamentally different paradigms.

April 18, 2012 · 1 min · Amit Bahree

What I am working on today? Optimisation Algorithms

I often get the question – a what am I working on today? Some of the things I can’t discuss in an open forum, but some I can. Those that I can, I thought it was best to share via my blog and do quick small posts on it. Will this become a new series? Well time will tell – depends on how much bandwidth I will have. This weekend, I am researching Optimisation Algorithms – both Deterministic and Probabilistic....

March 17, 2012 · 1 min · Amit Bahree

Occasionally Connected Architecture

When implementing an occasionally connected architecture for a solution, there are three fundamental requirements: Part of the overall solution, some smart client is deployed and installed on the desktop and a web only approach is not possible. The main rational being that a smart client can work in a disconnected mode which of course with a web application is not possible. Underlying infrastructure needs to be in place to support this....

June 16, 2011 · 4 min · Amit Bahree

C++ Message queuing options?

I am thinking of implementing a queue in one of the projects I am working on right now (sorry cannot go into more details until it gets published - hopefully in a few months). Anywyas, this is in C++ which needs to run on Ubuntu and my queueing experience (with C++ or otherwise) is only with MSMQ which is brilliant, but does not help me here as that run only on Windows....

December 29, 2010 · 3 min · Amit Bahree