Skip to content


Microservices or Micro Service Architecture (MSA) is being advertised heavily these days mostly by Thoughtworks.

At first it looks like a great idea, in fact it is a great idea if you look at this this way:

  • There are boundaries between services.
  • Each service is small enough to understand, to be re-written, etc.
  • Each service is supposed to do only one thing.
  • Each service can be so fine grained that it can even correspond to a single database table (extreme?)
  • etc.

I would like to call it a “pattern” as it has its own pro’s and con’s. But none of these are new concepts or best practices on their own. To me MSA at its core seems like a style (or part) of SOA since services are the “things” you work with.

On the other hand there are few areas where the current articles and enthusiasts are not very clear about:

  • How do we orchestrate a ton of services? In all videos and articles they diminish ESBs. I am not a fan of ESBs but they do a fine job of orchestration but MSA is not clear about it. I have seen suggestions on using a thin layer of orchestration, using messaging or RESTful styles, etc but if you have a million of microservice then it would be a nightmare.
  • If we create too restricted boundaries around our services and they become so isolated then how do they communicate from a database perspective? How sales database can be so separate from ordering database?
  • Lots of small services makes transaction management a big job.
  •  etc

Given these concerns you have to be very careful when you use MSA. I feel this is an old concept with a new name which is not yet mature to become a full fledged style of architecture. Probably it is good in smaller applications with mostly read-only services or services which are inherently separable….Time will tell…

Nexus 7 Screen Replacement

If you have little ones around you know they love to play with tablets. Our 14 months boy Kian is used to watching Baby Einstein series on my Nexus 7 while having a meal on his high chair. After the meal he sometimes takes the tablet and keeps watching on the floor. The other day he put the tablet on a chair but it dropped face down on the stone surface. Although the distance was less than 50 cm and it has a chunky cover on but I was shocked that the screen just trashed.

On ebay some there are separate screens and digitizer but I suggest buying both together. It is around AUD 60. This video tells how to open it up.  To remove the cracked screen from the bezel I just put it under the sun for about an hour. The video is not very clear on how to attach the new screen to the bezel. For that I used Loctite Super Glue for Glass. It all went very smooth and I have a brand new Nexus again. I suggest affixing a screen protector as well…


After disassembly


The new screen is on top

VB Script to Send Mail From Outlook

In our office we cannot create Outlook rules to forward emails outside the corporate network  (say to Gmail) automatically but you can write a VB script/Macro to do that. Although I have never done that as it might be illegal but this just explains that it is feasible!

The script basically is called whenever Outlook received a new email:

private Sub Application_NewMail()

 Dim newMail As MailItem
 Dim s As String
 Dim b As String
 Set newMail = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items.GetLast
 s = CStr(newMail.SenderName + ": " + newMail.subject)
 b = CStr(newMail.body + "")
 Call CreateEmail(s, b)
 'later you can delete these from your sent items folder

End Sub

Sub CreateEmail(subject As String, body As String)

Dim olApp As Object
 Dim OlMail As MailItem
 Dim ToRecipient As Variant
 Dim CcRecipient As Variant

Set olApp = Application
 Set OlMail = olApp.CreateItem(olMailItem)

OlMail.Recipients.Add "<me>"

OlMail.subject = subject
 OlMail.body = body

End Sub

Bitbucket Behind Proxy

I was having difficulty playing with Bitbucket behind the corporate proxy. Our local proxy servers alone didn’t work for me on http/https and I had to switch to the ssh solution.

This is how it worked:

  1. Created a set of keys from within the SourceTree.
  2. Launch SSH Agent. Import the private key.
  3. Upload your public key to Bitbucket site.
  4. Change the remote/origin in the SourceTree to use ssh instead of https (something like<username>/<project>.git. Find this from your project on the Bitbucket.
  5. Enter the proxy details in SourceTree Options.
  6. Now “push to remote” works fine in SourceTree

Why I will never install Linux on my Mac

These are the reasons why I will never install a Linux on my personal Mac or PC as the main OS, at least for now.

I have to stress that these are more of a taste and the way I use my computers and might not be an issue for other people.

I also have to say that I work with linux servers in my day to day work and love them but in the desktop world I doubt Linux has a place yet. I even have an Ubuntu desktop on another computer at work that I use for some tasks.


  • As long as there are articles in the Linux world starting with “how to install” that means things are not yet user friendly
  • All I need from linux is a terminal that I have in Mac or I can ssh to a remote linux machine
  • Linux does not have Facetime
  • Skype is dodgy in linux. You will never know whether your audio card will work in the next release of linux or not!
  • Many apps do not have proper/strong counterparts in linux or if they have it is dodgy or buggy: Libre Office crap; different messengers all buggy, either video or audio not working properly; graphics editors, nothing close to photoshop; sound editors, don’t even think about it; Evolution/Thunderbird vs Outlook haha…
  • You always have to look for the drivers. Whether my webcam, printer, this and that work in linux or not.
  • For simple tasks you have to waste your whole day on Internet searching and finally someone suggested on their weblog that you have to put a flag on a config file for that thing to work!!

I didn’t mean to hurt anyones feelings, just for a bit of laugh😉

Tablet as Photo Frame

I long wanted to have a good photo frame. Then from somewhere came the idea of using a tablet as one. After deciding for months on what tablet to get finally I went for a cheap no-brand android tablet under $60. It is a 7″ Android 4.0 from ebay with 512 RAM, 1.2 GHz CPU, 4GB internal memory, wifi, camera, etc.

Using a $2.5 slide show application from Google Play I can show photos from network. At this time we have around 35,000 photos sitting in the NAS to be viewed!

For mounting I purchased a PadTab which is a brilliant mounting idea for vertical smooth surfaces (i.e. fridge)

This is not just a photo viewer. I have also installed few useful apps and widgets to show calendar, weather, etc that we use when we are tired of seeing photos!

We can also quickly check emails or facebook while standing although hasn’t happened yet!

Total cost: $71

My wife was initially sceptic of the whole idea but now she seems happy about the final setup. I also have to confess that at first I wasn’t quite confident of a tablet with that price range and 800×600 resolution but it is producing pretty decent images.

2013-08-18 12.52.34

Clean rebuild to Mountain Lion

As this was my first Mac, I had done lots changes here and there to experiment and it was time to start afresh. Also I wanted to get rid of stupid packages and applications that I had installed in the past few years (including Xcode!)

When it comes to MS Windows installation I am an expert but in the Mac world I am hopeless.

Searched the Internet for ways to cleanup the hard disk and start a clean OS and saw different ways of doing it by different people.

The best way that works for me was:

  1. Shutdown
  2. Press cmd+R and power on (You can also restart and do this)
  3. System goes into recovery mode
  4. Format the entire disk
  5. Install the OS from Internet

This saved me from creating boot disks, etc.