"Fortunate are those who take the first steps.” ― Paulo Coelho

My 500′ th blog post from the past 10 years of blogging !! – Awesome

Year 2014 is something unforgettable in my career and personal life.
Yes, I moved to a newer job, second daughter “Mahanya” arrived, got leaner, becoming vegan, enjoying being single, enjoy preparing fish. I enjoy kesar sunday tea and jilabi’s – one of my weekend stress buster. Coming back, I don’t usually think about the past(reviewing year) and also not good at that. But wanted to have a checkpoint in life to see from the huge list of things I succeeded and failed in 2014. Life is too fast and most of us don’t have time to relax and look back.

Few important things I learned during this first 10 year of my career. 

1) Be focused and persistent from the day one.
2) Stay Focused on what matters the most and leave the rest.
3) Nothing wrong in Jack of all than master of one – you should aware of your battle card and ignore your peers good at it.
4) My hobbies changed every year, thinking changed – really slowing down. I can feel that.
5) Becoming techie 🙂 I have not changed a bit from my college days..
6) Penny saved is penny earned
7) Focus on only on things which you can change and influence.
8) Thanks to Sapient and Thomson for shaping my financial knowledge. Oh yeah – I can be your trusted advisor too
9) Not lucky enough to use my passport, had always mixed feeling – but right now I am not worried a bit.
10) Anti TV and still going on..

What I learned in 2014
1) “Persistence”, “Confident” and “focus” – “NEVER GIVE UP”
2) 2014 absolutely no travel and less fun, more work and no family life
3) Got Leaner – trimmed those extra those 5 Kg
4) Feedemon is my constant weekend buster to find a good reading stuff.- thanks for that.
5) Plan for the day ahead. These days, my calendar drives my work and schedules
6) Commute to work by Office cab, timing changed to NA hours(EST)
7) Particpiated in Office Hackathon – attempted “Search and paste”
8) Set the right expectation, say “no” at the right place
9) You know what, my 2014 hobbie is listening music – Bose at home.
10) Learned some internals of Microsoft Stack technologies and debugging tools.

> Machine learning dumped it
> Failed at one of the internal key movement
> No certification/coursera
> Closed Metroskillz training business
> No rain and zero business- driest year so far I have seen

I am excited about 2015- absolutely looking forward to do some cool things in both personal and career.
1) Azure, Azure and Azure – develop these skills required for consulting & Develop some cool free office apps
2) Stay always focused and explore the connecting dots
3) Plan for at least 2 vacation with family
4) MS certification
5) Hard work never fails
6) Buy a cycle

For me, 2014 was a great year. I have really enjoyed blogging for the last ten years by exploring things which is interesting to me always. I am not going to give up.. I am sure you too..

# good luck mikky ! best wishes ! lot of sleepless night and hard work will pay you some day. ## Keep going – I am proud of your energy even after 16 hours+ of sitting..### You are different, doer !!

Cyberiafreak – MS 10.33 AM…Life is beautiful.. Trust it. …hackoo 🙂 exiting..


December 23, 2014 Posted by | Uncategorized | Leave a comment

Languages features in C# 6 and VB 14

Feature Example C# VB
Auto-property initializers public int X { get; set; } = x; Added Exists
Getter-only auto-properties public int Y { get; } = y; Added Added
Ctor assignment to getter-only autoprops Y = 15 Added Added
Parameterless struct ctors Structure S : Sub New() : End Sub : End Structure Added Added
Using static members using System.Console; … Write(4); Added Exists
Dictionary initializer new JObject { [“x”] = 3, [“y”] = 7 } Added No
Await in catch/finally try … catch { await … } finally { await … } Added No
Exception filters catch(E e) if (e.Count > 5) { … } Added Exists
Partial modules Partial Module M1 N/A Added
Partial interfaces Partial Interface I1 Exists Added
Multiline string literals “Hello<newline>World” Exists Added
Year-first date literals Dim d = #2014-04-03# N/A Added
Line continuation comments Dim addrs = From c in Customers ‘ comment N/A Added
TypeOf IsNot If TypeOf x IsNot Customer Then … N/A Added
Expression-bodied members public double Dist => Sqrt(X * X + Y * Y); Added No
Null propagation customer?.Orders?[5]?.$price Added Added
String interpolation $”{p.First} {p.Last} is {p.Age} years old.” Added* Planned
nameof operator string s = nameof(Console.Write); Added* Planned
#pragma #Disable Warning BC40008 Added Added
Smart name resolution N/A Added
ReadWrite props can implement ReadOnly Exists Added
#region inside methods Exists Added
Overloads inferred from Overrides N/A Added
CObj in attributes Exists Added
CRef and parameter name Exists Added
Extension Add in collection initializers Added Exists
Improved overload resolution Added N/A

December 13, 2014 Posted by | Uncategorized | , | Leave a comment

Fix: Open XML SDK hang in multithreaded environments

Just come to know through my colleague about this fix- wanted to share.
We finally have a fix for this long standing issue where applications using Open XML SDK (or System.IO.Packaging) would hang in multithreaded scenarios while working with large files.(10MB limit related bug).

Hotfix rollup 2996566 for the .NET Framework 4.5, 4.5.1, and 4.5.2 on Windows 8.1 and Windows Server 2012 R2
Hotfix rollup 2996567 for the .NET Framework 4.5, 4.5.1, and 4.5.2 on Windows 8 and Windows Server 2012
Hotfix rollup 2996568 for the .NET Framework 4.5, 4.5.1, and 4.5.2 on Vista SP2, Windows Server 2008 SP2, Windows 7 SP1, and Windows Server 2008 R2 SP1

src: Internal email

October 21, 2014 Posted by | Uncategorized | Leave a comment

Convert PPT to SVG – workaround/hack !

One of my colleague wanted to know if there is any support from MS to convert the PPT’s to SVG without going through 3’rd party lib’s. I got an idea and jumped into connect the two different PIA’s to hack around. At the end, I am able to get it what he wanted. Good hacking 🙂 – here is the poc of my sample tested roughly few times. You may have to fine tune or test thoroughly before moving to production.

Objective: PPT => SVG
Proposed idea: PPT (PIA) =>jpg => VISIO (PIA) => SVG.

  1. Create/open a PPT using Office.Interop.PowerPoint
  2. Save the PPT as Jpeg.
  3. Close the PPT
  1. Load a blank VISIO file using Office.Interop.Visio
  2. Import those exported Jpeg –from step2
  3. Export the document as SVG.

Here is the c# code.

using Office = Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Visio = Microsoft.Office.Interop.Visio;

namespace ConsoleApplication1
class Program
static void Main(string[] args)



Console.Write(“Done.. Press any key to close”);
private static void CreatePowerPointUsingPIA()
PowerPoint.Application oPowerPoint = new PowerPoint.Application();

// By default PowerPoint is invisible, till you make it visible:
//oPowerPoint.Visible = Office.MsoTriState.msoFalse;

PowerPoint.Presentation oPre = oPowerPoint.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoTrue);

PowerPoint.Slide oSlide = oPre.Slides.Add(1,PowerPoint.PpSlideLayout.ppLayoutText);
oSlide.Shapes[1].TextFrame.TextRange.Text = “WELCOME : Win an Xbox One with Machine Learning!”;

oSlide = oPre.Slides.Add(2, PowerPoint.PpSlideLayout.ppLayoutText);
oSlide.Shapes[1].TextFrame.TextRange.Text = @”Conclusion: Thank you”;

string fileName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + “\\SourcePPoint.pptx”;

catch (Exception ex)
Console.WriteLine(“PowerPoint throws the error: {0}”, ex.Message);
private static void CreateSVGfromJpegUsingVisio()
Visio.Application app = null;
Visio.Documents oDocs = null;
Visio.Document oDoc = null;

app = new Visio.Application();
app.Visible = false;

// Create an existing blank saved vsdx – dummy
string dummyInput = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + “\\Drawing1.vsdx”;

oDoc = app.Documents.Open(dummyInput);

//int DiagramServices = 0;
//DiagramServices = app.ActiveDocument.DiagramServicesEnabled;

string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

string[] filePaths = Directory.GetFiles(path + @”\SourcePPoint”, “*.jpg”);

int sliceCount = 1;

foreach (string str in filePaths)
app.Settings.SVGExportFormat = Visio.VisSVGExportFormat.visSVGExcludeVisioElements;
app.ActiveWindow.Selection.Export(path + sliceCount + “.svg”);
oDoc.Saved = true;
catch (Exception ex)
Console.WriteLine(“CreateSVGfromJpegUsingVisio throws the error: {0}”, ex.Message);
Let me know if this helps you or any correction required.

October 14, 2014 Posted by | Uncategorized | Leave a comment


If you would like to create spreadsheet-based mashups, then this is the site for you to start – 

To create an Excel mashup, you use Excel Web App to create an embedded workbook that is stored on SkyDrive, and then displayed in a host web page. Once you’ve embedded the workbook, you use the JavaScript API to programmatically interact with it.

  • Shows you how to embed a workbook on a web page.
  • Provides JavaScript code snippets.
  • Walks you through creating a web control.
  • Provides a demo that pulls it all together. 

October 4, 2014 Posted by | Uncategorized | Leave a comment

Did you try Bing Developer Assistant Beta ?

Bing Developer Assistant puts millions of code snippets and code sample projects at your fingertips while you are coding in Visual Studio.

I love this and really useful when I am looking for a sample beyond Visual studio auto intelisense. Current it is supported in VS 2012 & 2013. – Must try!!

September 26, 2014 Posted by | Uncategorized | Leave a comment

Clickonce installation error and resolution.

System.Runtime.InteropServices.COMException (0x800736B3): The referenced assembly is not installed on your system. (Exception from HRESULT: 0x800736B3)


Resolution:(Windows 8.1)
1. Navigate to the C:\Documents and Settings\<Profile Name>\Local Settings\Apps
2. Rename the Apps folder to AppsOld
3. Reinstall the ClickOnce application

September 25, 2014 Posted by | Uncategorized | Leave a comment

Cloud Design Patterns – Book Download

This guide contains twenty-four design patterns and ten related guidance topics that articulate the benefits of applying patterns by showing how each piece can fit into the big picture of cloud application architectures. It includes code samples and general advice on using each pattern.

September 22, 2014 Posted by | Uncategorized | Leave a comment

Office Click-to-run add-in supportability.

Even though the Office product runs in a self-contained environment, the Office product can interact with the other applications that are installed on the computer. Macros, in-document automation, and cross-Office product interoperability will work. Click-to-Run is also designed to allow locally-installed add-ins and dependent applications to work with it. However, there is the possibility that some add-ins or other integration points with Office might behave differently or might not work when you are using Click-to-Run.

 In-process, out-of-process, and hybrid add-ins

A key differentiator from a technical standpoint is whether the add-in is loaded in-process by an Office application or whether an out-of-process application is making a call into Office. 

Out-of-process add-ins/applications are stand-alone programs, scripts, or applications that use Office object model APIs to start functionality in the application and integrate with Office. In this case, the out-of-process application drives Office. Out-of-process applications are not supported in Click-to-Run.

In-process add-ins are loaded in-process by an Office application, and detected and opened by the application. Because of this, the Office application can use existing mechanisms, such as looking at specific registry keys or locations in the file system to discover all in-process add-ins. There is no such mechanism for out-of-process add-ins. Generally, in-process add-ins work with Click-to-Run. 

July 31, 2014 Posted by | Uncategorized | Leave a comment

Weekend Interesting read -DataScience & ML – Part1

66 job interview questions for data scientists
Azure ML: A Brief Introduction

ml ml1

July 27, 2014 Posted by | Azure ML, Machine learnign, Uncategorized | , | Leave a comment

FREE Microsoft eBooks

Largest collection of FREE Microsoft eBooks ever, including: Windows 8.1, Windows 8, Windows 7, Office 2013, Office 365, Office 2010, SharePoint 2013, Dynamics CRM, PowerShell, Exchange Server, Lync 2013, System Center, Azure, Cloud, SQL Server, and much m

Microsoft Senior Sales Excellence Manager – Eric Ligman

July 10, 2014 Posted by | Uncategorized | Leave a comment

Win API (HWND) integration in Outlook is not a supported platform technology.

How to add a window that is adjacent to the preview pane in Outlook  –

June 18, 2014 Posted by | Uncategorized | Leave a comment

Support guidelines for client-side messaging development – KB266353

Why Win32 API is not supported

June 14, 2014 Posted by | Outlook, Uncategorized | Leave a comment

Procdump is preferred over Adplus- About ProcDump.

There may be many ways to capture the dumps in winodws, but which one gives us the better dumps ? Obviously Procdump has lot of advantage, details and preferred over Adplus when see the details in Windbg. 

We suggest to use Procdump and also carefully select the bitness when capturing dumps. For 64 bit use -64 or else leave it blank(default it is 32 bit).

 The syntax goes like this for crash-> Procdump -e -ma -t -64 -w Outlook.exe    (Procdump page has got details about these command line switches)

Let me put it in steps,

1)    Before taking dump, enable page heap corruption checking using the following command:   gflags.exe -p /enable outlook.exe /full

 2)    Now run the procdump command to capture the dump with bitness set accordingly. Procdump -e -ma -t -64 -w Outlook.exe  Wait for the crash and confirm dump has been created successfully.

 3)    After the crash, reset command: gflags.exe -p /disable outlook.exe You can use the following command line to see if page heap checking is enabled:    gflags.exe –p

 For additional info, refer Dan B blog post here and about procdump quick video here.

June 6, 2014 Posted by | Uncategorized | | Leave a comment

Why Office server side automation is not supported, EWS Links, Open XML starter pack

1)      Considerations for server-side Automation of Office –

 2)      EWS API links – Below are some starter links. 

 Exchange for developers –

 Developer roadmap for Exchange –

 Get started with EWS Managed API client applications –

 EWS Managed API concepts –  

 Working with the EWS Managed API –

 Microsoft Exchange Web Services Managed API 2.1  –

 C# Sample code:

        //pass the credential and EWS asmx detail

       privateint GetUnreadCount()


            ExchangeService service = newExchangeService(ExchangeVersion.Exchange2013);

            service.Url = newUri(“https://yourcasserver/ews/exchange.asmx“);

            service.Credentials = newWebCredentials(“Username”, “Password”);


            Folder inbox = Folder.Bind(service, WellKnownFolderName.Root);

            SearchFilter sf = newSearchFilter.SearchFilterCollection(LogicalOperator.And, newSearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));

            ItemView view = newItemView(50);

            view.Traversal = ItemTraversal.Shallow;

            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sf, view);

            //get the count

            int count = findResults.Count();

            return count;


3)      For Open XML,

By default, this download installs files to the following locations:

i. Visual C# snippets. PersonalFolder\Visual Studio 2010\Code Snippets\Visual C#\Open XML SDK 2.0 for Microsoft Office 2010

ii.  Visual Basic snippets. PersonalFolder\Visual Studio 2010\Code Snippets\Visual Basic\Open XML SDK 2.0 for Microsoft Office 2010

Generating Excel 2010 Workbooks by using the Open XML SDK 2.0

4)      Regarding EWS Editor –

May 29, 2014 Posted by | Uncategorized | Leave a comment

How to convert word document to PDF using MS PIA Interop libraries.

For Word interop ref: c:\Program Files (x86)\Microsoft Visual Studio 12.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Word.dll

using System;

using System.Reflection;

using Word = Microsoft.Office.Interop.Word;

namespace ConsoleApplication5




staticvoid Main(string[] args)


Application app = new Word.Application();

Missing ms = Missing.Value;

Document doc = app.Documents.Open(“D:\\Inputlog.doc”, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms, ms);

doc.ExportAsFixedFormat(“D:\\dave_sample.pdf”, Word.WdExportFormat.wdExportFormatPDF, false, Word.WdExportOptimizeFor.wdExportOptimizeForPrint, Word.WdExportRange.wdExportAllDocument, 1, 1, Word.WdExportItem.wdExportDocumentContent, false, true, Word.WdExportCreateBookmarks.wdExportCreateNoBookmarks, false, true, false);



May 15, 2014 Posted by | Uncategorized | | Leave a comment

How to use the Outlook object model to retrieve all recurring appointments

You have to set ‘oItems.IncludeRecurrences = True’ if you are trying to get all the recurring calendar items in VBA-Outlook.

April 30, 2014 Posted by | Uncategorized | Leave a comment

%d bloggers like this: