Saturday, November 15, 2014

Merging Multiple Google Calendar into a Single Unified View

I had this struggle for a while managing my unified public Google Calendar. Goal was to ensure folks whom i work with will have to open one calendar ( single click ) and they can see my schedule across multiple clients. This view should combine all different calendar(s) that i refer to and give the end use a single view. I tried a dozen of cloud software nothing was close to what i want. Luckily all my client use Google App ( Yay !! ). One less headache to deal with.

With this approach i can merge / combine all my different calendar and generate a unified calendar.
Step 1: Select the primary calendar
Step2: Select "Share this Calendar"
Step 3: Make it public
Step4: Back to Calendar Settings and select HTML view

Step 5: Configuration tool ( Our Magic link ) 

Step6: Last step before you can publish a unified view. 

If needed you can host this in your webserver as 

Friday, July 26, 2013

Sending Newsletter made easy

Every organization need to be in touch with customer ( especially for those who really care about past guests :) ). And newsletter is a way to keep in touch with customer who has done business with us in the past or enquired for a business in the past. 

We have tried may industry leading email marketing software like Mailchimp, ConstantContact, etc... and there is a very very low spam rate that we have to maintain else the account will be blocked. 

In one of my customer's case we had more than 8% bounce rate and 3% spam rate. These numbers are high for the standard software like the one mentioned above ( Mailchimp, ConstantContact ). 

Time for a smart solution which will handle volumes of email without worrying about spam rates. Before explaining the solution just a bit of explaining the terminology. 

A newsletter is a regularly distributed publication generally about one main topic that is of interest to its subscribers. Newspapers and leaflets are types of newsletters. Additionally, newsletters delivered electronically via email (e-Newsletters) have gained rapid acceptance for the same reasons email in general has gained popularity over printed correspondence. Newsletters are given out at schools, to inform parents about things that happen in that school.

Amazon SES
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective bulk and transactional email-sending service for businesses and developers. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email service. The service integrates with other AWS services, making it easy to send emails from applications being hosted on services such as Amazon EC2. With Amazon SES there is no long-term commitment, minimum spend or negotiation required - businesses can utilize a free usage tier and after that enjoy low fees for the number of emails sent plus data transfer fees.

MailChimp is an email marketing service provider, founded in 2001. It has 2.5 million users that collectively send over 4 billion emails a month through the service. It is a web-based application, although data can be downloaded and for some features there is an offline application.
Spam Rate 
( Detailed Report from MailChimp
Industry Open Click Soft Bounce Hard Bounce Abuse Unsub
Agriculture and Food Services 45.40% 4.50% 0.90% 0.80% 0.06% 0.27%
Architecture and Construction 43.80% 5.20% 1.40% 1.10% 0.04% 0.22%
Arts and Artists 43.10% 3.40% 0.80% 0.80% 0.05% 0.24%
Beauty and Personal Care 32.70% 3.60% 0.60% 0.70% 0.07% 0.30%

Amazon Simple Email Service can handle volumes of email with out complaining and its super cheap. A comparison chart 
Email serviceCost per 10,000
Campaign Monitor$105
Amazon SES$1

Amazon SES ( short form for Simple Email Service ) can handle volume of email but it doesn't have any beautiful user interface ;( 

Meet Sendy ( from Sendy website ) 
Sendy is a self hosted email newsletter application that lets you send trackable emails via Amazon Simple Email Service (SES). This makes it possible for you to send authenticated bulk emails at an insanely low price without sacrificing deliverability.
Steps to get up and running
  1. Fire up an EC2 in your favourite region  ( Using Amazon AWS Console ), Micro instance will do ( Recurring cost of $14 per month ) 

  2. Select an Ubuntu AMI 
  3. Install php, phpmyadmin, mysql 
  4. Download 
    1. You need to pay a one time fee of $59 
    2. Updates are if you pay once ;) 
    3. I selected /var/www/sendy as place of installation 
    4. There is beautiful getting started guide here 
    5. Follow the steps and you should be done in less than 30 minutes 
  5. That's it 
    1. A self hosted newsletter solution up & running
  6. Total cost ( Approximately ) 
    1. License fee for | $59 ( One time ) 
    2. Two Hour setup time ( A Smart Sysadmin)  | $100 ( One time )  
    3.  Run it on a Micro Instance  | $14 per month ( Opex ) 
    4. For 10,000 Email SES charges | $1 ( Opex ) 

Have fun emailing you customers with Amazon SES & Sendy !! 

Thursday, July 25, 2013

Google Picasa Web Albums backup in less than 5 steps

Disaster and Recovery is something a IT professional need to think about while working with any projects. In case of Code a source repository help as backup ( assuming you are using something like which is managed professionally ). But think about images !! We can't host it in a Source Control System !!! 

One of my client who relies on images a lot for communicating with it client treats images as it primary assets. The total size of images goes beyond 250G and expected grow to 500G in the next 2 years. 

We decided our primary platform as Picasa web ( from Google ) for image hosting & collaboration ( since the customer was in Google Apps platform). 

Recently we had a disaster. Its not Google storage which crashed but a authorised user deleted a bunch of picture ( of course unknowingly !! ). 

This is when i was entrusted to find a elegant solution for this problem. The result of my research is the following. 

  • Fire up a Amazon EC2 instance preferably a Ubuntu or Amazon AMI 
    • SSH to the new instance 
  • Attach a Volume equivalent to picasaweb size ( in my case i needed a 250G Vol ) 
  • Download
    • Extract the tar.gz
    • python install 
  • Download
    • Extract the tar.gz
    • python install 
  • in bash 
    • google picasa list-album 
    • this will give a URL which is for authorisation  
      • ( open up the same in ur fav browser ) 
    • Once authorised run the following script and we are ready to backup your entire picasa 
  • Snapshot your Volume using AWS console. 

The Google Command Line is pretty mature and can do multi threaded downloading of albums. Give it a spin and let me know how it goes. 

Have fun with Google Command Line !! 

Reference :

Thursday, June 6, 2013

Guest speaker at RHOK bangalore at CIS

Quick background of RHoK for those who are hearing about it first time.

RHoK is a rapidly growing global initiative encompassing a community of over 5,500 innovators in over 30 countries striving to make the world a better place by developing practical, open source technology solutions to respond to some of the most complex challenges facing humanity. We do this by defining problems, organizing hackathons, and ensuring projects are effectively deployed.

I was invited to give a pep talk to hackers by Yogi and Praveen both a great supporters of RHoK ( and other technology events ) from the inception stage. Initially when praveen wrote an email i was not sure if i will be the best speaker for event. This thought gave me a opportunity to step back and contemplate what am in doing in life and how can i map it back to hackers at RHoK. 

In my day to life as Agile/Technology Coach i interact with various companies, with various level of people at the organization starting from the founders of the company, CEO, CTO, investors, senior leaders, junior staff members, etc... Also as part of my work i have been a vendor to companies and also worked with vendors. This gives me a cross section of challenges, thought processes, issues teams goes through, etc.  This happens across multiple companies. My promise to myself is "How to take unbiased and neutral decision" at any given point in time. 

On a flight from Delhi - Bangalore when i got some free time ( thanks to traffic in India we ensure we reach at least 1 hours early in AirPort )  following few points came to me ( also inspired from many book that i have read in the past ). 
  • Know ur work, 
    • Have a swim lane mapped before you start.
    • Deeper you go you loose focus on what is in horizontal.
    • If you don't have a tool signup for ( pretty intuitive and easy to use ). Where ever i have recommended they are not disappointed. 
    • Knowing the end goal help, give clarity to everyone who is a stake holder. 
  • Keep talking about the idea everyday
    • To your peers. 
    • To your family friends. 
    • To even strangers ( u get a different presepctive when u talk about an idea to some one who wont understand what you are talking ;) ) 
    • The idea takes shape, be ready to change when you learn from others. 
  • Who is your target audience
    • Not all will be ur audience. 
    • I do a bit of part time at a Dessert cafe ;) ( give me a prespective of retail customers ) i over heard a conversation with Customer and Owner of the Dessert Cafe. The conversation goes like this.
      • Customer 1 comes and says your dessert is awe full, trash it !! 
      • Customer 2 comes and says your desserts gives me orgasm !!  ( a bit too much i say ;) ) 
    • I spoke to  owner after this feedback, the owner who is also a good friend told me that "he really doesn't care about "customer 1" because she/he is not the demography of customer am looking for". 
    • What stuck me is the owner know who his target customers well in advance and only cares about his target audience. ( He took 5+ years to start this Dessert cafe ) 
    • You ate not gonna solve everyone problem.
  • Your investment in Analytics won't go waste.
    • Especially if your product that you are building is software better signup for free Google Analytic's. 
  • Imagine the product exist
    • Are people ready to sign up for a small fee ?
    • Signup shows the need of the app, isn't ?
    • Can u create a video and show it to people and get them excited  ( the way dropbox did it ?? ) 
    • Solve real problem and if its real problem you are sure gonna be successful. 
  • Think commercial else you are doing it for fun. 
    • You can always start giving it free but count that as business development cost but at some point 
    • You need to make money (ads, small fee, free for 1 year, etc.. )
  • Piggyback, 
    • Unless its a framework you are building don't build it from scratch, you are wasting you time.
    • Google is your friend. 
  • Technical itch to code make its complex, 
    • for eg suckless values its contributors when they write less code
  • Know you competition well 
    • Recurit few Business Analyst  
    • Hire few of them from or 
  • Don't wait for the pixel to be perfect launch your beta today
    • do A/B test of next version 
    • Keep iterating 
  • Use your brain ( be data driven ) 
    • but go where your heart is ( never loose your gut feeling )
This was mostly targeted at young start up entrepreneurs who are getting into the basics of building a product from scratch. I was glad to meet few young hackers and share some of the above points.

I wish RHoK a RHoK'ing days ahead !!

Saturday, March 2, 2013

A browser that adheres to the unix philosophy

One of my projects that am currently working is in Digital Media Space. When i came into this project it was built on top of Microsoft Windows. We had more than 500+ LCD screen at various location powered by Windows machine. The place where these machines run dosen't have great power support and we had frequent crashes. 

Inorder to get things under control i started porting these application to Linux. When i started porting i realized that its not easy to port because the application are built on top of VC++. It was a easier decision to write it from scratch in Python.  

The architecture layer includes bare bone X86 hardware, X11, a Video Player to play different media content and a browser to display dynamic content. 

Tuesday, February 5, 2013

Google Advanced Sign in Security for you ( Cross Posting)

As we zoom in the Information highway, email has become our important assent holder. Email system know which company we work with, whom do we interact, how much do we get paid on a assignment, how many production server is currently up and running and the list goes on and on and on. Especially a person like me who consults with couple of companies my work revolves around email. Now that email has become a integral part of our lives, it makes sense to have it protected !! 

Since i use half a dozen machine to check my email ( Macbook, iPhone, etc... ), username/password along cannot give the require protection. An additional layer of security gives a better security. 

OTP is a well know technologies. HSBC (banking giant  for example introduced OTP as additional layer of security while using ATM. The challenge with HSBC OTP was we had to carry an additional device.

Monday, January 7, 2013

Remote Desktop Sharing

My day to day work involves interacting with people across the globe (India, Australia, Germany, South America, Italy, US, etc... ) Some of them are english speaking and some of them are non english speaking ( Spanish, French, African, etc ... ) Preferred language of email is mostly English between me and my customers. This creates problem for customer who are non english speaking and trying to explain what they want in broken english. 

Like the old saying "Picture is worth 1000 words"

Sunday, September 23, 2012

Amazon EC2 Command Line Parameter EC2_URL

Amazon Web Service exposes pretty much all the end points as Web Services. For a script lover like me i love this feature. I common mistake i keep doing is not to set the EC2_URL. When Amazon Web service started there was only one end point that was us-east. By default all the API's were configured to point here. Now we have more than 5+ datacenter across the globe. ( US-East, US-West, EU, APAC-East, APCA-West, etc... ) 

Thursday, September 20, 2012

Dropbox Selective Sync Fundamental Design Issues

From Wiki .....
Dropbox is a file hosting service operated by Dropbox, Inc. that offers cloud storage, file synchronization, and client software. In brief, Dropbox allows users to create a special folder on each of their computers, which Dropbox then synchronises so that it appears to be the same folder (with the same contents) regardless of the computer it is viewed on. Files placed in this folder are also accessible through a web site and mobile phone applications.
Its perhaps one of the oldest cross platform, multi device file sharing available in the market. That mean product wise its really mature. In spite of its minor flaws i still love it as a share platform. ( Am yet to be convinced about Google Drive till that point Dropbox will remain my favourite )

Dropbox Enterprise or Team Edition has its admin interface to manage the team, track usage, manage sharing, etc .. which is pretty cool from a end user perspective but not from a IT managers perspective.

Monday, July 23, 2012

Sysadmin :: Tool Selection :: Backup & Restore

From my early days of career i have been working with Appliances especially custom built Appliance using commodity hardware. This blog post is about a recent experience on selecting a tool, how i implemented it. 

Wiki say an appliance is 

A computer appliance is generally a separate and discrete hardware device with integrated software (firmware), specifically designed to provide a specific computing resource. These devices became known as "appliances" because of their similarity to home appliances, which are generally "closed and sealed" – not serviceable by the owner. The hardware and software are pre-integrated and pre-configured before delivery to customer, to provide a "turn-key" solution to a particular problem. Unlike general purpose computers, appliances are generally not designed to allow the customers to change the software (including the underlying operating system), or to flexibly reconfigure the hardware.
The best way to visually appliance is "pre configured, ready to use devices" which dose not require much tweaking once installed. Think of it as a black box which abstracts some functionality and exposed outside thru a management interface ( or some other ways) to configure/manage.

Listed down is one of the few reason's why we need to engineer appliance properly:
  • We need to customize the OS to suit the need of the application and run the same software for about more than 100+ devices. 
  • Unlike cloud, Appliance are independent devices, may or may not been interconnected. Provisioning these appliance at the customer location is a night mare if we don't have proper cloning mechanism. 
  • Add to confusion when we have different types of install media, target media, etc .. Most challenges comes in when we have special encryption and other settings required which make it difficult to use some thing like Kick Start (Refer Fedora KickStart). 

Sunday, May 13, 2012

Technical Debt, Eventual Consequence of Poor Design or Coding

Most of the companies who deals with software will have to deal with Technical Debt. In layman terms its a debt caused because of un coordinated software development/change management practice ( which is inevitable in most of the development houses ). Even if we have the best of approaches ( either in Waterfall or in Agile) this 'Technical Debt' is a part and parcel of the software evolution. The best we can do is the minimize the 'Technical Debt'.

Some of trigger points for Technical Debt
  • Pressure to release sooner to customer. Most common problem. 
  • Take decision without considering the actual impact in the overall system. ( The bridge is built for 1 ton but the need of the hour is to transport 2 ton, let's take a chance !! ) 
  • Hard corded or deeply coupled, any change create huge impact. 
  • Ignored test suites create more challenges in term of getting a sense of what's working and what's not and what's broken when we built new features. 
  • Development is just one phase of product evolution, what about maintainability of code ? Do we have enough supporting documenting to go on to this phase ?? 
  • Multiple code bases and no frequent integration creating merger headaches. 
  • Refactor is need of any technical work, are we delaying it ? 
  • Lack of owner ship from seniors and lack from commitment from juniors adds it up.