मनुस्मृती विरुद्ध संविधान?

२६ नोव्हेंबर १९४९ रोजी बाबासाहेबांनी या देशाला संविधान अर्पण केले होते. त्यामुळेच हा आजचा दिन संविधान दिन म्हणून पाळण्यात येतो. त्यानिमित्ताने काल कुटुंबीय आणि मित्रपरिवरासोबत काही विचार मांडले. तेच आज इथे व्यक्त करत आहे.

खात्रीपूर्वक सांगतो की तुम्ही हे शब्द मनुस्मृती आणि संविधान आधीही ऐकले असतील.
कदाचित गेल्या चार ते पाच वर्षात तर जवळ जवळ रोज एकदातरी कानावर पडले असतीलच.
तेवढ्याच खात्रीने सांगतो की इतक्या वर्षात ऐकूनही आपण दोन्हींमधील एकातही खोलवर जायचा प्रयत्न केला नसेल.
मि तुम्हाला दोष देणार नाही, मिसुद्धा आपल्यातील एक आहे.
मध्यंतरी संविधान वाचायला घेतलं तेव्हा काही अजून समजून घेणं मला महत्वाचं वाटलं. त्यात मनुस्मृती चा संदर्भ येणं स्वाभाविक होतं.
आता दोन क्षण थांबुन विचार करा की इतक्या वर्षात का गरज भासली नाही? करून बघा तर…

एक संभावना अशी असेल की संविधान खरंच एवढं महान आहे आणि तेच स्वतंत्र भारताच सर्वात मोठं यश आहे. बाकी जे काही देशाने कमावलं आणि साध्य केलं ते संविधानाच्या पायावरच.

माझ्या मते हे खरं आहे, तुमचे विचार वेगळे असू शकतात आणि त्यात काही गैर नाही.

पण जगात परिपूर्ण अस काहीच नसतं, असं समजुया की काही त्रुटी असतील ज्या त्याकाळात समजायच्या राहून गेल्या असतील.

किंवा कदाचित असंही असेल की इतक्या वर्षात ह्या दोन मनुस्मृती विरुद्ध संविधान टोकांच्या संघर्षाची झळ तुमच्या दारात आली नाही किंवा आधीच्या सामाजिक सलोख्याने (तोही सहज मिळवला नव्हता), पुरोगामी नेत्यांनी, समाजकारण्यानी आणि राजकारणी लोकांनी ती झळ समाजात खोलवर पसरु दिली नाही.

कदाचित आताही ही झळ तुमच्या जवळ नसेल आली आणि देव करो येऊ नये…

पण स्वतःला विचारा की तुम्हाला ही झळ पोचणार नाही ह्याची तरी खात्री देता येईल का तुम्हाला?

कारण सध्या आजूबाजूला एवढं जात पात, धर्म, मंदिर, मस्जिद, धर्मसंस्था आणि त्यांच्या ठेकेदारांनी पसरवलेले विष वाढत चाललं आहे की ह्याच्या विळख्यात आपण कधी फसून जाऊ हे कदाचित जाणीव पण होणार नाही. हे थोडं नकारात्मक वाटेल

पण शाळेत आणि शाळेबाहेर जे काही शिकलो त्यातला एक धडा कधीच विसरणार नाही “भारत माझा देश आहे, सारे भारतीय माझे बांधव आहेत…” अश्या माझ्या बांधवांशी माझे मतभेद असू शकतात पण मनभेद ठेऊ नयेत.

इथेच खरी संविधानाची खरी शिकवण आणि ताकद समोर येते. विविधतेने नटलेल्या ह्या देशात मनुवादी विचारांनी बऱ्याच अमानवीय रूढी आणि परंपरा लादल्या होत्या. त्यात भर ब्रिटिश लोकांनी त्याच विविधतेवर घाला घालून देशावर राज्य तर केलंच पण पुढील अनेक पिढ्या देश त्यांतच गुरफटत राहील ह्याची व्यवस्था करून गेले. बरं ते तर परकीय होते त्यांनी त्यांचा स्वार्थ बघितला. इथे आपल्याच धर्तीवर असेच विविधेतच्या मुलभूत पायावर घाला घालुन काही मोजकेच लोक संपन्न होत गेले आणि त्याचेच प्रयत्न वारंवार होतात. जरा नजर फिरवुन बघा कोण आहेत हे लोक, कुठुन येतात हे विचार?

उत्तर नाही मिळालं तर हा फक्त 12 मिनिटांचा ( https://youtu.be/t1Epmn_aZ0I ) BBC Hindi मजकुर ऐका आणि मग हाच प्रश्न परत स्वतःला विचारा कदाचित उत्तर मिळेल.
त्याच बरोबर संविधान किती सर्वोच्च महत्वाचं आहे हे पण जाणीव होईल. त्याचं रक्षण करणं हे तर त्याहून जास्त महत्वाचं काम आहे.

ह्यात कोण एका जात, उपजात, धर्म, पंथ, पक्ष किंवा संघटनेला दोषी मानणं पण चुकीचं ठरेल. देशाचं नशीब की इथे शाहू, फुले आणि आंबेडकर यासारखे थोर लोक जन्माला येऊन गेले, त्यांच्या कामाने निदान बऱ्याच जातीयवादी रूढी मोडीत निघाल्या आणि देश पुढे सरकला.

पक्ष्यांच्या बाबतीत बोलावं तर गेल्या काही दशकात कमी अधिक प्रमाणात सगळ्या प्रमुख पक्षांनी संविधानाची पायमल्ली केली आहे. त्यातले काही संविधान तळागाळातील लोकांपर्यंत पोचवण्यात आणि समाजवण्यात अपयशी ठरले आणि त्यातले काही तर उघडपणे संविधान बदलणे, जाळणे आणि मनुस्मृती लागू करणे ह्याचा आग्रह खुलेआम आणि छुप्या रीतीने पण करतात.

हे कोण आहेत हे तुम्हाला चांगलं ठाऊक आहे अशी मि अपेक्षा करतो.
ह्या विचारांना आणि त्याचं समर्थन करणाऱ्या लोकांना बळ मिळू न देने हिच सर्वात पहिली गरज आहे संविधान रक्षणाची.

आता हळु हळु देशात निवडणुकीचे वारे वाहू लागतील, डोळे आणि कान उघडे ठेऊन लक्ष राहू द्या की कोण संविधानाची साथ ठेऊन बोलतंय.
कोण फक्त जुन्या रूढी परंपरा, पोकळ देशप्रेम, राष्ट्रवाद, पुतळे, प्रतिके, नामांतर, धर्मरक्षण ह्याच गाणं गातय
आणि
कोण सर्वशिक्षण, मूलभूत आरोग्य सुविधा, शेतकरी आणि त्यांचे खरे प्रश्न सोडवणे, रोजगाराच्या समस्या सोडवणे, धार्मिक सलोखा आणि शांतता ह्या पायावर राबवलेला सामाजिक आणि आर्थिक विकास साधण्याचा ध्यास दाखवतंय.

अश्या प्रकारचं समाजकारणातून राजकारण करणाऱ्या लोकांना बळ देणं ही सुद्धा संविधान रक्षणासाठी महत्वाचं योगदान होईल.

अजूनही बरंच काही करता येऊ शकेल, स्वतःला संविधानाप्रति थोडं जागरूक करा, समजलेलं इतरांना समजवून देण्याचा प्रयत्न करा आणि काहीच नाही जमलं तर इतरांना सर्वप्रथम मानवतेच्या नजेरतून बघणं कधीच सोडू नका, बाकी जात धर्म प्रांत देश हे सगळं नंतर ठेवा. बरंच काही लिहिता येईल, बऱ्याच लोकांनी लिहिलं सुध्दा आहे तेव्हा तूर्तास मि इथेच थांबतो.

पटलं तर अभिप्राय कळवा.

Independence and *WE* kas

🇮🇳 सर्वप्रथम स्वातंत्रदिनाच्या हार्दिक शुभेच्छा 💐 🇮🇳 Happy Independence Day 💐

स्वातंत्र आणि विकास
Independence and WEkas

आपल्या संविधानाची सुरुवात एका महत्वपूर्ण वाक्याने होते WE THE PEOPLE आणि ह्यातला WE हा मला ठळक नमूद करावासा वाटतो.

लवकरच देशात निवडणुकेचे वातावरण तापायला लागेल. गेल्या 70 वर्षात सर्वच राजकीय पक्षांनी विकास (VIKAS) ह्या मुलभूत गरजेचं राजकारण करत स्वतःचा विकास करून घेतला. आणि आजही ह्याच मुद्द्यावर तुम्हा आम्हाला भुलवल जात.

गेल्या काही वर्षात ह्यात एक गोष्टीची प्रकर्षाने भर जाणवते. ति म्हणजे इंग्रजानी घातलेल्या पायांड्याची divide and rule. बरेच राजकिय आणि निमराजकीय संघटना लोकांना लोकांपासून तोडण्याचा (धर्मावरून, जातीपाती वरून, समाजवरून, खाण्यावरून, कपडे घालण्यावरून आणि बरीच अशी विविधता जि आपल्या देशाची खरी ताकत हाती, आहे आणि राहिली पाहिजे) प्रयत्न करताना दिसत आहेत आणि हे सगळं चालतं एका शब्दांमागे तो म्हणजे विकास (VIKAS).

मि तुम्हाला विनम्र आठवण करून देतो आहे की…

  • विविध प्रांताच्या, जातीच्या, समाज्याच्या समस्थ स्वातंत्र्य सैनिकांनी एकत्र (WE) हे स्वातंत्र आपल्याला दिलं आहे,
  • आजवर देशाने जो विकास मिळवला आहे तो एकात्मतेची (WE) भावना जपत आणि पुढच्या पिढ्यानपिढ्याना देत मिळवला आहे,
  • स्वातंत्र्याची 100 वर्ष आणि त्यानंतरचा विकास हासुद्धा ह्या एकात्मतेवरच शक्य आहे.

तेव्हा VIkasachi भाषा करत तुम्हाला फसवण्याऱ्या राजकारण्यापासून सावध रहा.

स्वतःमध्ये WEkasachi जाणीव जिवंत राहू देत, ति तुमच्या आजूबाजूला पसरवा, त्यासाठी तुम्ही लोकांना प्रेरणा द्या आणि उज्ज्वल भारतासाठी तुमचा हातभार लावा.

त्यासाठी देव आपणा सर्वाना सद्बुद्धी आणि लागणार बळ देवो हि देवाकडे माझी प्रार्थना.

जय हिंद, वंदे मातरम, भारतमाता की जय !!!

समाज म्हणजे काय?

मला असं वाटतं समाज म्हणजे…

  • तत माणुकसी पता यावी यासाठी मानवाच्या उत्क्रांतीच्या इतिहासात काही मजूतदार माणसांनी न्माला घातलेली व्यवस्था.
  • सर्वांनी माणुसकी जपली तर र्वच माणसांना गणे सोपे आणि सुखकर होईल कदाचित ह्याच हेतूने निर्माण केलेली व्यवस्था.
  • कदाचित सम + आज म्हणजे कोणत्याही क्षणी/दिवशी सर्वांच्या अस्तित्वाला, गरजांना आणि भावनांना समान मान असतो ह्याची जाणीव असावी असा लपलेला संदेश.
  • र्वांच्या मानवाधिकारांचे तन करता यावे म्हणून कस मानसिकता तन करा असा संदेश कायम देता यावा ह्याची तरतूद.

समजलं तर खरंच सोपं आहे… पटतंय का?

Data Science Glossary

I am sure there will be many like me who are in the process of mastering data science skills. Some might be thinking about picking this area for learning and possible future career options.

In the last 3 years of my Data Science journey, I came across many online resources. The ones which helped me during my learning are quietly sitting in my favorites/bookmarks.  I thought it will be a good idea to start some posts to share my experience on self-taught data scientist. Its stiff learning curve specially if you don’t enjoy data also not so much interested into statistics or learning programming languages like Python or R. But it isn’t IMPOSSIBLE either. All you need is commitment to learn, experiences from people who pursued data science learning and some motivation along the way. I am still in the process of documenting my personal journey, hoping that it may help someone. On that note, till I write that post, I would like to share the discussion Can I become a self-taught data scientist? Hope it gives some idea to aspirants and may be some motivation too.

If you have already begun the journey I am sure you will be overwhelmed with various concepts and terms which one needs to be comfortably aware till you reach a your confidence level on overall data science topics. For someone like that having a data science glossary handy will definitely help revise and revisit during preparations. I came across following 2 resources and would like to share here with my readers,

And if you have fairly understood data science topics and wondering how the real process or projects can look like? The please do check out this Azure Machine Learning documentation on What is the Team Data Science Process?. I have come across many links, documents, papers on practical usage however this one is really well structured and yet simple to get the overall picture clear. In the future blog I will try to share other references appropriately.

My intent [ hopefully a new year resolution 🙂 ] is to begin sharing my thoughts on Data Science as regularly & frequently as I can. Having said that’s it for now. Stay tuned to my blog if you are interested learning my experiences with data science and related topics.

 

Replicate VS Code Extensions Using PowerShell

What is Visual Studio Code?

From Wikipedia,
Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and MacOS.
It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
It is also customizable, so users can change the editor’s theme, keyboard shortcuts, and preferences.
It is free and open-source,although the official download is under a proprietary license.

Read more at https://code.visualstudio.com/docs

Extensions in Visual Studio Code

VS Code extensions let you add languages, debuggers, tools, add new features and themes to your installation to support your development workflow and experience.
Visual Studio Code has support for almost every major programming language.
You can find extensions to install using the Extensions View.
You can install extensions the ones you like, and disable extensions you don’t want to use all the time.

How do I get consistent VS Code experience?

It’s already available on Windows, Linux and MacOS. So even if you move between environments and type of operating systems you can still get the same VS Code experience.
To make it even seemless it would be good if you can get the extensions also available when you move between different machines. Like the way you get your roaming profile and desktop experience on Windows operating system.

There are few extensions available to solve this problem. The two prominently found on marketplace are,

  1. Settings Sync
  2. Extension Manager

I wanted to try something simple as I often create virtual machines for testing, training labs.
I have already automated the VS Code silent install using PowerShell Remoting. To extend that effort, I wanted to install extensions as well, so that once my virtual machine(s) is/are ready I can start using VS Code with same experience as my physical laptop.

I added following lines of code which using VS Code command line and PowerShell remoing command (Invoke-Command)

# Setting up credentials for remote session on VMs from Host Machine.    
$hostCredential = New-Object PSCredential("MachineName\Administrator", ('mypassword' | ConvertTo-SecureString -AsPlainText -Force))

# Find the Visual Studio Code Extensions Installed and store in variable   
$vscodeExtensions = code --list-extensions

# Install Desired Visual Studio Code Extensions
# Using foreach to iterate through list of extensions in $vscodeExtensions.
# Using Invoke-Command installs the extension on remote computer.
Invoke-Command -AsJob -ScriptBlock {
foreach ($vce in $using:vsccodeExtensions){
code --install-extension $vce 
}
} -ComputerName MachineName -Credential $hostCredential -Verbose 

# Verify Visual Studio Code Extensions are installed on remote machine
Invoke-Command -ScriptBlock {code --list-extensions} -ComputerName MachineName -Credential $hostCredential -Verbose

This slideshow requires JavaScript.

Notes:

  • I have tried this to replicate extensions found in Visual Studio Code installed on my Windows 10 laptop to Visual Studio Code installed on Windows 2012 Server Virtual Machine.
  • I have not tested this method with all possible extensions however I feel this should work unless there are any specific dependencies (missing) of extension blocking the installation.
  • You can use the same techique to uninstall extensions from remote command and code should look like
Invoke-Command -AsJob -ScriptBlock {
foreach ($vce in $using:vsccodeExtensions){
code --uninstall-extension $vce 
}
} -ComputerName MachineName -Credential $hostCredential -Verbose

Thats’s it for now. Thanks for reading!!!

How do I practice PowerShell?

“How do I stay in touch with PowerShell practice?”
Yes, this is one question is surely asked in all my PowerShell batches.
It’s obvious that people get overwhelmed with capabilities of PowerShell and wonder how do I keep practising. The biggest question is where do I start?

Well!!! PowerShell can answer that, PowerShell can solve that for you with following steps,

  1. Update-Help
  2. $PROFILE (Set up your PowerShell profile)
  3. Get-Help (Automated)

Lets try to understand more about the solution.

Step 1 – Update-Help

  • Update-Help cmdlet downloads the newest help files for Windows PowerShell modules and installs them on your computer.
  • You do not have to restart Windows PowerShell to make the change effective.
  • With this you will also get several about_* topics downloaded on your computer at C:\Windows\System32\WindowsPowerShell\v1.0\en-US and inside modules where latest help manuals are available.
  • This will lay the foundation for further steps.

Step 2 – $PROFILE

  • The $Profile automatic variable stores the paths to the Windows PowerShell profiles that are available in the current session.
  • A Windows PowerShell profile is a script that runs when Windows PowerShell starts.
  • You can use the profile as a logon script to customise the environment.
  • You can add commands, aliases, functions, variables, snap-ins, modules, and Windows PowerShell drives.
  • You can also add other session-specific elements to your profile so they are available in every session without having to import or re-create them.
  • Windows PowerShell supports several profiles for users and host programs. However, it does not create the profiles for you by default.
  • The Windows PowerShell console supports the following basic profile files. The profiles are listed in precedence order. The first profile has the highest precedence.

 

Different PowerShell Profiles

Different PowerShell Profiles

HOW TO CREATE A PROFILE :

To create a profile for the current user in the current Windows PowerShell host application, use the following command:

if (!(test-path $profile)) {

new-item -type file -path $profile -force

}

HOW TO EDIT A PROFILE:

You can use either of the following options at PowerShell prompt

  • Option 1
notepad $profile

opens profile file in notepad to edit.

  • Option 2
ISE $profile

opens profile file in PowerShell ISE (Integrated Scripting Environment) to edit.

ADD FOLLOWING CODE TO A PROFILE:

help about_* | 

ForEach-Object{

if (($_.Split())[0] -match 'about_'){

($_.Split())[0]

}

} |

Select-Object @{n='name';e={$_}} |

Get-Random |

Get-Help -ShowWindow

SAVE PROFILE CHANGES AND EXIT

Step 3 – Just Open PowerShell to Get-Help

The above code will execute every time you open PowerShell.

Technically,
- It pulls all the about topics
- Filters empty line and header row 
- From the output and just get the topic name as about_[topic] string
- Get-Random picks a random about_topic and passes to Get-Help
- Get-Help opens a topic in new window.
  • It will present you with one of the about_[topic] randomly. This will take out the burden of choosing topic.
  • Just make sure you read the presented topic at least for 5-10 minutes maximum.
  • I used to do this at least 3 times a day. Morning before starting work, just after lunch (before starting other work) and before I shutdown my computer at the end of the day.
  • So essentially minimum 15 minutes to maximum 30 minutes a day spent reading something about the PowerShell topics. Whenever I had extra time, I used to practice some of the examples from the about_topic.
  • This helped me register most of the topics in my head within 3-4 weeks of time.
  • Few years back, I was talking to someone on learning new skills and the person pointed out Rule Of 21 to me.
  • There are many articles if Google Or Bing it. Some of them even call it myth. I don’t want to talk PRO or CONS here about the same.
  • In my personal case it worked to gain good knowledge. Some of my participants also have responded that it was a helpful tip.

This slideshow requires JavaScript.

Food for thought: If you want to plan focused learning in every week, then you can extend the code. Have a starting and ending date. At the launch check if current dates falls in First, Second or Third week or more. Depending on that Get a random topic from the focused bucket.
i.e. Below command will select one command randomly from module NetAdapter. This was you can focus only on commands from selected module/area of learning.

Get-Command -Module NetAdapter | Get-Random | Select-Object Name

*Replace the Select-Object with Get-Help and you will get the help file.

That’s it for now.

If you like this tip do share your feedback. If you try this and find valuable, then do write me to with your experience.

All the best and enjoy PowerShell Scripting!!!

Download Ubuntu ISO using PowerShell

My previous post Unattended Ubuntu 16.04 Setup Using PowerShell was about building Ubuntu Server Virtual Machine completely in unattended mode on Hyper-V. To do that we need at least a server operating system ISO file of particular Ubuntu version. I wanted to plug this script/functions in earlier script however to keep it simple, I didn’t do that. I will try to merge these script soon to come up one single script later.

In this post, I will share how to get a particular Ubuntu ISO file using PowerShell script. You can download the complete script from my github repository.

This script has 4 functions as listed below,

  • Get-AvailableUbuntuVersions
  • Get-UbuntuDownloadUrl
  • Save-UbuntuISO
  • Test-Checkum

Since I have explained functions in script manual, I will just talk briefly about them here. For more information please refer the script documentation.

Get-AvailableUbuntuVersions – This is main function which gets called after running the script. This function reads http://releases.ubuntu.com/ and extracts the available version details. It then presents the available version to user and let user select from it.Using the choice of user it then calls Get-UbuntuDownloadUrl to build/identify the download URL for the selected version.

Get-UbuntuDownloadUrl – Generate the download URL. Based on the ubuntu version selected by user, this function generates the download URL for the iso and MD5SUMS file. Before exiting it calls the Save-UbuntuISO to start the download.

Save-UbuntuISO – Download the ISO file. This function gets called from inside Get-UbuntuDownloadUrl with 2 parameters download link and target location to save file locally. It uses BITS module to initiate, monitor and close the download of ISO file. Since the BITS job is set to Asynchronous this function will keep track of the progress of the job and ensure BITs transfer is resumed appropriately in case of failures.

Test-Checkum – Check the MD5Sum of the downloaded file. Once the download is complete, It gets the input parameters (sourceMD5SumsFileURL, sourcefile, targetFile) from Save-UbuntuISO for the iso file which is getting downloaded. It checks if the checksum matches and gives appropriate status message back to user.

Screenshots

This slideshow requires JavaScript.

Notes:

  • This script is tested on PowerShell 5, Windows 10 Pro version 1703 (creator update).
  • I expect it to work on PowerShell 3 and above without any issues.
  • Currently this script will not work on PowerShell for Linux as it needs BITS modules. I will be testing wget or other similar options for the Linux capability. Stay tuned if you are interested to see that update. Having said, I will be glad hear your updates/comments if you test and find the alternatives before I could try myself.

Unattended Ubuntu 16.04 Setup using PowerShell

It was back in 2003-04 when I had worked on linux with RedHat 2x & 3x, Fedora 2x and Knoppix 3x. After that for almost a decade I didn’t use linux.
In last few years (since late 2014) I have been playing Ubuntu releases as part of my experiments, learning DevOps tools and data science topics.
I have another laptop at home with Windows and Ubuntu dual boot which I keep switching between. At times when I am travelling, my preferred option is using Hyper-v virtual machines.
In this post, I will share my recipe building Ubuntu 16.04 virtual machine in unattended mode using PowerShell script.

Disclaimer

  • This script is output my experiment with Hyper-V, PowerShell & Bash on Windows 10 PRO. I have not added extensive error/exception handling.
  • To keep post focused on experiment and outcome, I have drafted much about Kickstart and Preseeding in Linux. I have provided reference to get good enough idea about it.
  • I ran this script 7 times after creating and it produced working VM in an average 35 minutes.

Ingredients

Steps

  1. Run the script to build iso for unattended setup.
  2. Connect to VM (last step in script hence actually not extra step)
  3. Connect through SSH and work with VM

Script Walk-through (High Level Steps)

  • Setting up required variables ( line number 2 to 9 )
  • Ask the user questions about user preferences ( line number 12 to 16 )
  • Check if the passwords match and then generate encrypted hash to use in preseed file ( line number 19 to 29 )
  • Check if the root passwords match and generate encrypted hash to use in ks.cfg file ( line number 32 to 42 )
  • Creating/Verifying Required Folder Structure is available to work ( line number 45 to 69 )
  • Mounting C:\LabSources\ISOs\ubuntu-16.04.1-server-amd64.iso file and copy content locally ( line number 72 to 82 )
  • Copy baseline Kickstart Configuration File [ks.cfg] To Working Folder ( line number 85 )
  • Copy baseline Seed File [mshende.seed in my case] (answers for unattended setup) To Working Folder ( line number 88 )
  • Update the ks.cfg file to reflect encrypted root password hash ( line number 91 )
  • Update the mshende.seed file to reflect the user’s choices ( line number 94 to 97 )
  • Update the isolinux.cfg file to reflect boot time choices ( line number 100 to 101 )
  • Building installer menu choice to make it default and use ks.cfg and mshende.seed files ( line number 104 to 111 )
  • Creating new ISO file at C:\LabSources\ISOs\ubuntu-16.04.1-server-amd64-unattended.iso ( line number 116 )
  • Create Hyper-V Virtual Machine ( line number 119 to 128 )
  • Add host entry on my physical machine pointing to VM ip address to connect VM over ssh ( line number 130 )
  • Starting Virtual Machine and Connecting through VM console ( line number 135 to 136 )
  • Connect to server once ready using putty ( line number 139, type manually once VM is ready after setup)

Links

Screenshots

This slideshow requires JavaScript.

References

Lessons Learnt

  • I am not expert in Linux, however being conceptually aware on diverse topics, I was able to use PowerShell to get what I want.
  • There are many options (both cloud and on-premise) available these days to host virtual machines. This is not about what is better v/s bad. This is about using available resources.
  • While writing this I couldn’t find best suitable alternatives for mkpasswd (line number 36) and mkisofs.exe ( line number 116 ) natively in/with PowerShell. However, because PowerShell can work with variety of applications, I was able to proceed without getting stuck.
  • In this case mkpasswd ( line number 36 ), I am calling bash command from Bash on Windows 10 and use in my script.
  • In this case of mkisofs which is available in bash shell, but I was not able to get it working like in the case of line number 36. I found Windows platform download at https://code.google.com/archive/p/mkisofs-md5/downloads.

Reading, The Phoenix Project…

Last two months were exciting & pleasantly busy which took toll on my new year (2017) resolution to blog more regularly & consistently. It also broke the rhythm of reading books more often and as much as I can. To add to this my new kindle (Thanks to my wife Smita for an advance anniversary gift) was staring at me daily for attention :-). So… I decided to start reading something immediately.

I am currently working on revising my training content & demos for PowerShell DSC (Desired State Configuration). Sometime back I had heard recommendation from Jeffrey Snover @jsnover about this book titled The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

Image

(Blog post images copyright & courtesy IT Revolution Press @ http://itrevolution.com)

Having followed Jeffrey over these years it was easy decision to pick a book from my wish list. I was lucky to find kindle edition available at very good price. I grabbed it immediately and started reading it. After going through Wikipedia, the Introduction and Chapter 1, sounds like… its going to an interesting read for sure with some fictionalization of real world problems and solutions.

Hope to finish this soon to get myself a new knowledge/perspective on DevOps, Continuous Delivery and related areas. And of course pass that to the participants during my upcoming batches.

Get-CloudManagementTools

This PowerShell script can be used to download some of the common cloud (Azure and AWS) management tools available on Windows Platform.

Earlier I had seen Download and Install SharePoint 2013 Prerequisites on Windows Server 2012.  However this technet script uses Start-BitsTransfer cmdlet from BitsTransfer module. I was toying with similar idea while working on my last workshop (Cloud Automation Using PowerShell) preparation. Since some of the URLs do redirect the Start-BitsTransfer wasn’t working for me initially.

I started with simple Invoke-WebRequest cmdlet and added second variation to handle redirected URLs and pass it to Start-BitsTransfer. So let’s go through the script and output for the both the approaches.

I am using Downloads directory to store the files. For demo I have created CloudTools folder inside. I already have AWS Tools for Windows PowerShell downloaded in the folder.

15012017-01

I am already into the working directory where the script is saved.

15012017-02

Started the script execution and you can notice it finds AWS Tools For Windows PowerShell and skips the download for it.

15012017-03

On my Windows Server 2012 R2 VM it created a CloudTools folder which was missing before download starts.

15012017-03-01

# The folder location where the downloads will be saved
$DestinationFolder = "$ENV:homedrive$env:homepath\Downloads\CloudTools"
If (!(Test-Path $DestinationFolder)){
 New-Item $DestinationFolder -ItemType Directory -Force
}

Download is in progress…

15012017-04

Before this, I have created hash table with Download URL and File Name After Downloaded

# Specify download url's for various cloud management tools. Do not change unless Microsoft changes the downloads themselves in future
$Downloads = @{
 # Latest Azure PowerShell
 # Github: https://github.com/Azure/azure-powershell/releases/latest
 # WebPI: https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/WindowsAzurePowershellGet.3f.3f.3fnew.appids
 "https://aka.ms/azure-powershellget2" = "$DestinationFolder\Azure-PowerShell.msi"; 
 # Latest Azure Storage Explorer
 "https://go.microsoft.com/fwlink/?LinkId=708343" = "$DestinationFolder\StorageExplorer.exe";
 # Latest AZCopy
 "http://aka.ms/downloadazcopy" = "$DestinationFolder\MicrosoftAzureStorageTools.msi";
 # Latest Azure CLI
 "http://aka.ms/webpi-azure-cli" = "$DestinationFolder\Azure-cli.msi";
 # Azure Storage Emulator
 "https://go.microsoft.com/fwlink/?LinkId=717179&clcid=0x409" = "$DestinationFolder\MicrosoftAzureStorageEmulator.msi";
 # Latest AWS Tools For Windows PowerShell
 "http://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi" = "$DestinationFolder\AWSToolsAndSDKForNet.msi";
 }

Approach 1 – using Invoke-WebRequest cmdlet ,

Then I have a function which loop through the elements in downloads hash table using Invoke-WebRequest cmdlet,

function DownloadFiles(){ 
 Write-Host ""
 Write-Host "====================================================================="
 Write-Host " Downloading Cloud Management Tools for Azure & AWS" 
 Write-Host "====================================================================="
 
 $ReturnCode = 0

$Downloads.GetEnumerator() | ForEach-Object { 
 $DownloadURL = $_.get_key()
 $Filespec = $_.get_value()
 # Get the file name based on the portion of the file path after the last slash 
 $FilePath = Split-Path $Filespec
 $FileName = Split-Path $Filespec -Leaf
 Write-Host "DOWNLOADING: $FileName"
 Write-Host " FROM: $DownloadURL"
 Write-Host " TO: $FilePath"
 
 Try 
 { 
 # Check if file already exists 
 If (!(Test-Path "$Filespec")) 
 { 
 # Begin download 
 Invoke-WebRequest -Uri $DownloadURL -OutFile "$Filespec" -ErrorVariable err
 If ($err) {Throw ""} 
 Write-Host " STATUS: Downloaded"
 Write-Host
 } 
 Else 
 { 
 Write-Host " STATUS: Already exists. Skipping." 
 Write-Host
 } 
 } 
 Catch 
 { 
 $ReturnCode = -1
 Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'" 
 Write-Error $_
 Break 
 }
} 
 return $ReturnCode 
}

and the downloads completed.

15012017-05

Approach 2 – using Start-BitsTransfer cmdlet,

First a function Get-RedirectedUrl to get redirected URL

# This function gets the end URL to avoid redirection in URL breaking the Start-BitsTransfer
# Courtesy: http://www.powershellmagazine.com/2013/01/29/pstip-retrieve-a-redirected-url/
Function Get-RedirectedUrl {
 Param (
 [Parameter(Mandatory=$true)]
 [String]$url
 )
 $request = [System.Net.WebRequest]::Create($url)
 $request.AllowAutoRedirect=$true
 try{
 $response=$request.GetResponse()
 $response.ResponseUri.AbsoluteUri
 $response.Close()
 }
 catch{
 “ERROR: $_”
 }
}

Then I have a function which loop through the elements in downloads hash table using Start-BitsTransfer cmdlet,

# Import Required Modules: BITS is used for file transfer
Import-Module BitsTransfer

function DownloadFiles(){ 
 Write-Host ""
 Write-Host "====================================================================="
 Write-Host " Downloading Cloud Management Tools for Azure & AWS" 
 Write-Host "====================================================================="
 
 $ReturnCode = 0

$Downloads.GetEnumerator() | ForEach-Object { 
 $DownloadURL = Get-RedirectedUrl -URL $_.get_key()
 $Filespec = $_.get_value()
 # Get the file name based on the portion of the file path after the last slash 
 $FilePath = Split-Path $Filespec
 $FileName = Split-Path $Filespec -Leaf
 Write-Host "DOWNLOADING: $FileName"
 Write-Host " FROM: $DownloadURL"
 Write-Host " TO: $FilePath"
 
 Try 
 { 
 # Check if file already exists 
 If (!(Test-Path "$Filespec")) 
 { 
 # Begin download 
 Start-BitsTransfer -Source $DownloadURL -Destination "$Filespec" -DisplayName "Downloading `'$FileName`' to $FilePath" -Priority High -Description "From $DownloadURL..." -ErrorVariable err 
 If ($err) {Throw ""} 
 Write-Host " STATUS: Downloaded"
 Write-Host
 } 
 Else 
 { 
 Write-Host " STATUS: Already exists. Skipping." 
 Write-Host
 } 
 } 
 Catch 
 { 
 $ReturnCode = -1
 Write-Warning " AN ERROR OCCURRED DOWNLOADING `'$FileName`'" 
 Write-Error $_
 Break 
 }

} 
 return $ReturnCode 
}

while downloading the progress bar looks different,

15012017-06

I had deleted 2 files and ran the script again and following is the output,

15012017-07

If you want to know more about BITSTransfer & PowerShell you can refer this How to copy files with BITS using PowerShell

You can try both variation scripts by downloading from my (cloudscripts) github. I will be updating it later for more tools.

That’s it for now.

AWS PowerShell and PowerShell Profile

In my last post Login to Azure PowerShell Options talked about Azure. In this one I will share about AWS.

Before we begin it would be good to get familiar with basic AWS PowerShell and connectivity using PowerShell. Following resources are helpful.

Goal

I want to start using AWS Cmdlets as soon as I have PowerShell launched.

Solution I am using,

Few checks before updating Default Windows PowerShell Profile for Current User.

06012017-11

To find cmdlets which work with the AWS credentials

PS C:\> Get-Command *aws*cred*

06012017-02

To find cmdlets which work with the AWS defaults

PS C:\> Get-Command *aws*defa*

06012017-03

Just to ensure there are not configurations loaded by PowerShell Current User Profile

PS C:\> Get-Variable *aws*

06012017-01

I am expecting “StoredAWSCredentials” and “StoredAWSRegion” to be loaded and available and there is no file available at C:\Users\{UserName}\AppData\Local\AWSToolkit

06012017-04

To set credentials I have added following 5 lines into my PowerShell profile.

06012017-05

$awRegion = 'ap-south-1'
$awAdmin = Import-Csv -Path "C:\Users\{username}\OneDrive\Documents\Cloud\MyAWS\credentials.csv"
Set-DefaultAWSRegion $awRegion
Set-AWSCredentials -AccessKey $awAdmin.'Access Key Id' -SecretKey $awAdmin.'Secret Access Key' -StoreAs "MSAWPS"
Initialize-AWSDefaults -ProfileName "MSAWPS"

I have a credentials csv file in which access key and secret key for my admin account is stored. I am importing that from my onedrive path and using it in Set-AWSCredentials command.

Now launch PowerShell as Administrator and notice few changes. First there a file called RegisteredAccounts.json created at

C:\Users\{UserName}\AppData\Local\AWSToolkit

06012017-06

Open it in notepad or your favorite tool. I am using Visual Studio Code. The file looks like below,

06012017-07

This time some AWS configurations are loaded by PowerShell Current User Profile

PS C:\> Get-Variable *aws*

06012017-08

You can verify that credentials are loaded and available for use.

PS C:\> Get-AWSCredentials -ListProfiles

06012017-09

You can directly start using AWS cmdlets. Notice I don’t have to supply the credentials or profile as it’s already set and initialized as default.

PS C:\> Get-IAMUser
PS C:\> Get-IAMUsers

06012017-10

That’s it for now.

Test Azure AD User’s Role and Group

In case you missed it, very recently Microsoft went live with the Azure Active Directory PowerShell 2.0. You get more information at #AzureAD PowerShell V2.0 is now GA or Microsoft Goes Live with Azure Active Directory PowerShell 2.0

I had signed up for a cloud automation batch in last week of December 2016. I decided to incorporate new modules for demo. I wrote a following script to search for user’s role and group membership in single task. Currently the Azure AD Portal capability is in Preview Mode. The current set of commands like Get-AzureADUser, Get-AzureADDirectoryRole and Get-AzureADDirectoryRoleMember give the information however we get the only the object ids. To get the display names of users, roles and group names you can use logic in the script.

Click here to get the complete script at Technet Script Center Repository

If you are new to Azure AD, following resources can help you get started,

(Help-Learn -ne Share-Knowledge)

Last week I was in Chennai delivering a training on PowerShell, at a very short notice.

This was a very different experience. I was called to deliver a batch on Automating Administration with Windows PowerShell®

More than the content, the context was different this time. This was started by another trainer but the participants were not happy with the delivery. The requirement came to me on Monday evening after 7:00 PM. I was expected to start the batch on Tuesday morning at 9:00 AM. That was definitely tough. I spoke to the vendor requesting at least a day to understand something about background and the context, which he agreed to. There were other surprises as well

One, 5 days content squeezed to 3 days.
Two, client was in Chennai.

While the first one was not quite a surprise as most people are trying to get the staff back to production/delivery sooner. I made sure that the expectation was set so that there are no arguments later over the duration and overall feedback. Thankfully, the vendor team agreed to the assumptions to avoid feedback risk. Fundamental assumption was most of the participants are experienced server admins and they know some level of PowerShell already. Therefore, 3 days were planned to cover the agenda.

The second surprise however was a bit hard to manage as I had to start travel in few hours. Having managed to get ready, it was fortune testing time for me.

The flight was scheduled for a 10:30 PM departure. After getting on the runway the pilot decided to go back to parking bay. The aircraft had some technical glitches making it unsafe for take off. It got rescheduled to 12:30 AM and eventually I reached Chennai at 3:00 AM on Wednesday. I barely slept for three and half hours. The training was to commence at 9:00 AM and I reached at 8:20 AM to class room.

Participants were told 9:30 AM so I got some preparation time. That’s the only hour I got to plan my delivery to ensure that the training goes smooth. By the time everyone joined it was 9:45 AM and the training eventually started. I had to share the last evening experience with participants before setting the tone for agenda.

Introductions are generally 10 to 20 minutes but this time I extended to almost an hour. It was not just to get names, I wanted to understand there area of work, expertise and what they expect from the training. That conversation helped me so much to get an exact idea about what needs to be done to help them learn. The day one feedback was 4.8 out of 5.

chennaiday1feedback

After seeing that, all the stress taken 24 hours before was flushed. It also gave me a motivation to finish on a higher note (which did happen with similar feedback).

In my last 5 training’s, I was able to help the participant implement PowerShell learning to solve their existing problem. For some, it was a migration from the batch files to PowerShell and for some it was how to approach automation with PowerShell learning.

I repeated my practice of encouraging participants to talk about real-life technical issues they face. By the third day there was one participant who could change his two batch file approach to a single PowerShell script for their production. This was an acknowledgement for me that I delivered a successful training in true sense.

So my learning,

  • Be real about your capabilities and limitations and overcome inhibitions.
  • As a trainer focus should be on enabling learning & discovering than knowledge sharing & content delivery.
  • Knowledge sharing may limit to content delivery however learning enablement pushes students/participants to think about solving technical problems.
  • Knowledge sharing may remain as notes with participants but enablement helps them accomplish something real and remember for a long time.
  • While planning is good, sometimes one has to take bold steps/risks to establish credibility.

PowerShell ISE on Ubuntu 14.04

In the last post covered the initial steps for

  • Installing PowerShell on Ubuntu 14.4
  • Running basic PowerShell Commands (cmdlets)

After doing that I was curious to understand how the PowerShell ISE works on open source. Some answers are available at PowerShell Magazine

search for “tmux”
search for “ISESteroids 2.6.1.0”

I have not worked on both of them so skip commenting on it for now.

I had heard about Visual Studio Code and PowerShell language support. I found some hints in the post Microsoft has open-sourced PowerShell for Linux, Macs. Repeat, Microsoft has open-sourced PowerShell

So with above, I tried testing script editing capabilities with Visual Studio Code on Ubuntu 14.04

Step 1 – Go To Visual Studio Code On Ubuntu 14.4 (https://code.visualstudio.com)

0

Step 2 – Download the .deb

1

2-1

Step 3 – Install Visual Studio Code

sudo dkpg –install ~/Downloads/code_1.4.0-1470329130_amd64.deb

2-2

2-3

Step 4 – Launch Visual Studio Code

3-0

3-1

Step 5 – Install the Extension For PowerShell

3-2

3-3

3-4

Step 6 – Enable PowerShell Extension

3-5

Step 7 – Restart Visual Studio Code

3-6

Step 8 – Launch Visual Studio Code and Save the Untitled file as Test1.ps1 file

3-7

Step 9 – Write PowerShell Commands. You will notice intellisence support available.

3-8

3-9

Step 10 – Go to Menu > View > Integrated Terminal (shortcut cntl + `)
It opens the bash terminal by default

3-10

Step 11 – Change Default Terminal from Menu > File > Preferences > User Settings

You will notice settings.json is empty. Whatever settings you add will override the default settings. I added entry to point to PowerShell.

3-11

3-12

Added following lines of code

//The path of the shell that the terminal uses on Linux.

“terminal.integrated.shell.linux”: “/opt/microsoft/powershell/6.0.0-alpha.9/powershell”

3-13

Step 12 – Restart Visual Studio Code

Step 13 – Go to Menu > View > Integrated Terminal (shortcut cntl + `)

It opens the PowerShell terminal by default now.

3-14

Step 14 – Type $PSVersionTable in console (terminal) and enter

3-15

Step 15 – In the editor type Get-ChildItem and Hit F8 key

It will run the command and produce the output but you won’t see it.

Step 16 – To see the output Go to Menu > View > Output

3-16

So Lessons Learnt are,

  • As of now, there is no official news on PowerShell ISE coming on open source.
  • Having said that, this is really a good beginning towards any client to any server management capabilities with PowerShell and Visual Studio Code (with PowerShell Extension). As it gets to final release and stabilizes in community, I expect to become more rich and smoothly integrated with open source editor (or with editing tool experiences)
  • The intellisence were not working consistently and fluently. There could be something about my VM. I will test later with another VM . I also check in communities for any such observations.

That’s it for now. I will continue exploring capabilities over next few days, So stay connected.

First Look Of PowerShell On Linux

PowerShell is now available on Linux and Open Source.

Since last one year I have been doing regular batches on PowerShell.  So moment this announcement came I thought of trying hands on it. So here are few baby steps into PowerShell on Ubuntu 14.04 VM.

Step 1 – Downloaded Package

https://github.com/PowerShell/PowerShell/releases/tag/v6.0.0-alpha.9

Ubuntu PowerShell - 0

Step 2 – Installed Dependencies

sudo apt-get install libunwind8 libicu52

Ubuntu PowerShell - 1

Step 3 – Installed PowerShell Package

sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb

Ubuntu PowerShell - 2

Ubuntu PowerShell - 3

Step 4 – Launched/Entered into PowerShell Console

type Powershell at terminal

type $PSHome

type $PSVersionTable

Ubuntu PowerShell - 4

Step 5 – Run PowerShell Commands

Get-ChildItem

Ubuntu PowerShell - 5

Get-Process

Ubuntu PowerShell - 6

$PROFILE

Get-ExecutionPolicy

Get-Module

Ubuntu PowerShell - 7

Get-Command

Ubuntu PowerShell - 8

Get-Command | Measure-Object

Ubuntu PowerShell - 9

Get-Help

Ubuntu PowerShell - 10

Exit

Ubuntu PowerShell - 11

Additional Reading

PowerShell Team Blog

PowerShell Team Celebration Video

PowerShell Magazine

PowerShell on Linux Installation Instructions

Book REVIEW : Visualize This

My data science journey started with the interest of learning different data visualization techniques. From the start of my career I had an influence of Concept Visualization. In the recent times, I even experimented Infographics into my resume. If you search on visualization on internet there will be plenty of resources around information graphics, presentations etc. I never thought there will be a book primarily on data visualization techniques (and not on the tools for graphics visualization). I picked this book from my library the moment I saw statistics in tagline. After reading I totally agree that it really is a guide as it states.

http://www.isbnsearch.org/isbn/9780470944882

 clip_image001

  • Chapter 1 : Telling Stories with Data – It’s an age old saying that storytelling is an art. Time and again, It’s used by several successful people in the world to express their vision in front of the world, be it social, political or business discussions. On other side data is not new, it’s been there even before computing evolved. With the growth of data, drawing insights, making decisions & conveying discussions to stakeholders will continue to become complex. To make it simple you need to present in visually impressive mode & to the point by keeping less decoding for receivers of the data. This chapters explains precisely the same in a very short & simple language.
  • Chapter 2 : Handling Data – The core is data so you need to understand how to gather it, where to look for sources, what if you have unstructured data, how will you get it in your hand with meaningful format/schema. This chapter gives you very good understanding about it. Going beyond, with a hands-on data scrapping exercise it will make sure you get familiar with real world data scattered over multiple web pages/sources into one file for analysis.
  • Chapter 3 : Choosing Tools to Visualize – As the title suggest it’s about choosing visualization methods on given data. It covers variety of tools from Out-Of-the box commercial tools to scripting & programming options. The amount references given and supported by hands on exercise is the most important part for me. It’s very easy to refer something and drop the topic from high level. But making reading try some of it always makes him/her connect with the book.
  • Chapter 4 : Visualizing Patterns over, Chapter 5 : Visualizing Proportions, Chapter 6 : Visualizing Relationships, Chapter 7 : Spotting Differences and Chapter 8 : Visualizing Spatial are at the heart of the book. With the hands on exercise in each chapter its explains how different type of objectives can be met on variety of dataset available for visualization. There many relevant examples shared in these chapters along with the instructions which you can try on your machine.
  • Chapter 9 : Designing with a Purpose – The wrap up chapter nicely explains how the acquired knowledge can be enhanced. Like any communication it’s not just your views/words, it’s also about the recipients requirements, understanding of the topics, awareness of related contexts & most importantly interest in relating with your views and words. Preparing yourself to handle such things will make you not just better but a meaningful in data visualization.

So how did this book help me !!!

  • First & super importantly it corrected my knowledge about the visualization. My knowledge was only limited to graphs & charts. It lifted me from there to basics plots to visualizing a data on to the maps. Yes by the end of the book, I was able to draw India map and do some sample analysis. I will post the learning in upcoming blog posts.
  • It helped me learn Python & R. At the beginning of the book I was struggling to write python code. Because of the book I pushed myself to learn it well. To my surprise I wrote my own python code for data mining. The data mining part is completed but I am still working on analyzing and visualizing in R. Once completed, I will try to put a blog post about the experience.
  • Sometime last year, I had taken a free course on R from online learning portals. This book just took me on to new levels for using R and I thoroughly enjoyed it. The book is full of R examples which will make you comfortable using the tool.
  • I had an opportunity to try hands-on tools like Adobe Illustrator and Tableau. As I had to rely on trial version it was limited but good enough to get the basic context.
  • The book has ~125 website references. I went through all of them reading at least the page referenced and what it had to explain in the context. About 80% of these were new websites for me, so you can imagine new learning I must have had through these references. Some of the references are about popular data sources/topics like world population, education & crime rates analysis in USA, Obama’s presidential run and analysis on debate topics, NBA games & player analysis etc. While others are around popular web sites for data science, blogs, tools, communities etc.
  • I took a reading pause on this book as I was reading another on “How to become data scientist“. Looking back it nicely complemented my data science study. Most important “Visualize This” helped me get more serious & focused about data science.

So to conclude, this book not only helped me learn Data Visualization. This became catalyst in my data science study, it’s the prime motivator behind my Python & R learning, and will remain guide in my future data visualization assignments. Thanks Nathan Yau for writing this wonderful guide.

To know more about book, you can check out at http://book.flowingdata.com/ or see a short video introduction of book at https://youtu.be/mkEXx7sDXAI

Lastly, stay tuned for my upcoming blog posts on learning used by me outside the datasets from this book.

Remembering the Guru

Today morning, looking at the calendar my daughter asked me what’s this day Guru Purnima? Thinking what should I explain this 6 year old. So I spontaneously said guru is someone who teaches us. She was immediate to react oh its teacher’s day!!!. I was not in position to say clear Yes Or No. Somehow in the school time rush she forgot confirming but that kept playing in my mind.

While I was in that thinking mode I got a call from Ulhas Jogale. He wished me Happy Guru Purnima. It’s not the first time that he had called me. For last 12 years he calls me on this day without fail. I am really touched with his gesture. His tenacity to remember & call me every year even when my numbers were changed, struck me. I do have gurus but I was never so punctual in calling and thanking them. I just kept my feeling inside me about them. Ulhas’s call helped me find answer and made sure I don’t waste any opportunity now to thank my gurus.

Teachers do great job not questions about it. Teachers day is apt to say “Thank You” for their contribution.

So here is my realization, “Every teacher can’t be Guru but every Guru is definitely a teacher.” I am not claiming only I discovered this, I am just saying I realized it now in my life. I can’t explain this to my daughter at her age, hope she will discovers as she grows.

I did commerce graduation from Mumbai university. During 2001 to 2005 I worked for a company called Synergetics. My first job started here. I met some of the brilliant teachers (for me the best teachers) in Indian Software Industry. After a year of work as technical coordinator I was given more challenging responsibilities of managing IT system of the company. Of course for on the job learner it was definitely a lot of work. That’s when I got introduced to Ulhas Jogale. He used to work as office assistant for operations and finance teams. He didn’t have strong financial or educational background but he was very sincere with his work. In his spare time he used to stop by me for quick chats on latest news on politics, fun events & being Sachin Tendulkar fan we used to chat on cricket a lot. After sometime he started helping me in moving systems, providing helping hand in network setup etc. Sometime it was instructional from his managers and sometime he will voluntarily come forward. That’s when I realized he wants to learn about computers more. He knew basics or connecting, starting computer but not much beyond that. So while getting helping hand from him I started teaching him small things about operating computer and using MS Office applications. Later he started exploring on his own and used to get his understanding corrected from me. This went for months and he became more confident on basic operations. This had given him good name in the company as people started appreciating his work beyond his routine stuff. Then came a time he was getting work to burn the course content CDs for training programs. I am not very sure if he was getting paid for that extra work as well. More important for me was that his value to the company had increased and so does his confidence. Since then every Guru Purnima he started wishing me. I still don’t know what he exactly feels but hearing Thank You from him make me happy.

I realized why I can’t Thank my gurus who has changed my life over these years. Parents are first gurus, so how much ever I thank will be less.

For the others I immediately messaged Sanjay Vyas, Amol Vaidya & Anurag Dwivedi.

Why Sanjay Vyas – After my B.com graduation I was little frustrated as I was not getting a good job. I had done software diploma but still I was not lucky. I had decided to leave Mumbai if i don’t get job by December 31, 2000. Only my family knows about this. My father & elder brother convinced me not to. Somehow I agreed to try once more in next few months. Come January 2001 I saw ad in Times of India which I still have laminated with me as cherisable career moment. Synergetics have given job for me but Sanjay Sir was the one who really saw true potential me. My job was to process training feedback in excel files and prepare reports. Sanjay sir made me learn programming, computer hardware and so many new things about technology. In the initial year I would have hated him like anything but I never kept anger inside me. I kept doing what he wanted me to. His guidance and support on exploring technologies changed my way of thinking. It was those 4.5 years with him set me for big challenges and helped me work for the world’s best software company (Microsoft) in past few decades. On my resume 10 years at Microsoft is more visible but at my technical soul it’s those 4.5 years with Sanjay sir are more valuable as they give me confidence.

Why Amol Vaidya – Sanjay Sir taught me how to explore and learn new technologies. It was Amol who helped me keep that learning simple & meaningful. His guidance over the years has helped me untangle the confusions and make every learning effort meaningful. Without his guidance I would have never thought of delivering trainings.

Why Anurag Dwivedi – Back in 2007 when I was transitioning from phases in personal & professional life, he came into picture. After spending 2 years in Microsoft I was looking for next growth chapter. I knew I was not perfect in few areas. Two such was Reading Business and Leading People to grow. He became my manager and guided me like Guru . During 2008 to 2011 was by far the best time I had in Microsoft. I learnt many new things, contributed effectively to the business. I will always consider Anurag the guru who ignited my leadership skill and helped me understand management skills.

So you see none of them are my teachers but they turned out gurus who changed my professional life.

Someone may ask how can you have more than one gurus. I feel what if all them help me discover myself, my potentials and achieve positive things in life, the number doesn’t matter.

To close this post, I wish all my gurus Happy Guru Purnima & pray god to bless them with happiness & prosperity in their lives.

Book Review : The definitive guide to becoming a data scientist.

I have always enjoyed working with data specially data visualization. Before leaving my job at Microsoft, I was involved in project (more than one year duration) where analyzing data was crucial for planning the list of applications & desktops for migration. I was involved in data mining, scrubbing, analyzing & reporting information to the customer and team. Back then I was enjoying my work but never thought of taking to next level. Then about 7-8 months back I decided to pursue data science. After initial browsing/searching on internet I was lost because of the overwhelming amount of data about it. I was not sure where to start, how the market & jobs look like, what are the existing skills I can use, how should go about filling the skill gaps and so on…

This book came to me just the right time (sometime in April 2015).

http://www.isbnsearch.org/isbn/9781935504696

image

Without this book, I would have lost the interest but this book just brought me back on track with required focus. Journey towards data scientist is still long. From here on if I lose the way, it will only be my fault by not persisting the further practice and learning curve. But if I will be successful in pursuit of becoming Data Scientist, the major credit will go to this book  and the author “Zacharias Voulgaris”

So here is what I liked about this book a lot,

  • It not just a book it’s the first hand experiences shared on how to & what it takes to become Data Scientist.
  • First chapter beautifully explains the Big Data, Data Analyst and Data Science (Scientist) differences. Its sets the stage nicely toward exploring data science.
  • Explanation of big data with four V’s (Volume, Velocity, Variety & Veracity) gives clear understanding.
  • I personally feel, documenting mindset requirement is the toughest in any learning. Specially in today’s world where people go through various levels of stress to keep up with the competition. The chapter on mindset requirement can help immensely to assess and work-out on building required mindset to become data scientist.
  • Building further on mindset requirements the Chapters 5, 6 & 7 nicely explain Technical Qualification, Experience and most importantly Networking to build not just skills but connection to establish yourself in the scientist communities.
  • Chapter 8 explains on Software used. In Chapter 9 it builds further explaining how to keep Learning New Things (which is the most important aspect) and Tackling Problems (the real reason to be a scientist)
  • Chapter 10 is well summarized on Machine Learning, R & Statistics. The scenarios on when use which one really gives good perspectives towards looking at tools and problems at hand.
  • Chapter 11 dives into the Data Science processes. Whatever learnt in the earlier chapters will start making more sense with the way topic is written.
  • Building further in Chapter 12 it talks about specific skills required. What I liked is, it covers variety of profiles from experienced to student and gives guidance on reviewing/building required skills for the job. Here the introspection becomes easy to assess skill gaps and start thinking about learning plan.
  • Chapter 13 & 14 are nicely crafted around Where to Look for a Data Science Job, Presenting your candidature for applying jobs/work. In Chapter 15 it also talks about Freelance Track. It will help both types of people, the one who want to pursue freelancing while in job to build alternate career/income. And the others who are willing to be in full time freelancing at their will/choice.
  • In any learning case studies make them more relevant as all of us like to hear real stories and examples. Chapter 16-18 share stories of real people from junior to experienced data scientist.
  • Keeping yourself updated with the trends, tools & techniques is the super important to be good data scientist. The glossary, reference websites and offline books sections is overwhelming add-on which will ensure you have required pointers to stay on track to goodness.

I have only 1 suggestion. There is lot of text which is expected on such crucial topic and lets not expects shortcuts for that. However some good visuals can make lot of difference in keeping reader engaged and interested.

Conclusion – If you want to put your data science learning on fast track, go grab this book.

Book Review : Data MOdeling Made Simple

After almost 10 years I left my job at Microsoft in January 2015. I told myself that I should use the time between jobs to update myself on list of topics. Reading the books was something I had missed (being self critical “ignored”) over last few years. I had made new year resolution to get back in reading again so pulled out stock of books collected in last few years but never looked into them thoroughly. Read few books in last 2 months and really enjoying them.

Finished reading one such book this week “Data Modeling Made Simple: A Practical Guide for Business and IT Professionals, 2nd Edition”

http://www.isbnsearch.org/isbn/9780977140060

clip_image001

Brief context before talk about the book and experience,

  • I started career as Technical Co-coordinator where core job was to Collect (papers), Process (in Excel), Analyze (data analysis) and Report (emails) Training Feedback.
  • I was involved setting up Intranet at Synergetics and upgrading company website from HTML to ASP. It was more of Information Management but it had lot of data to be collected, processed and published (content for publishing on intranet & website, course schedules to be published etc.)
  • During my technical support days as Microsoft, I used to get cases from customers. Cases where they are configuring SharePoint, deploying solutions connecting data sources. And since SharePoint is heavily dependent on SQL databases I was always around them because of troubleshooting.
  • I also conceptualized and setup dashboard on SharePoint connecting back to SSRS.

In summary last 14 years of IT I was always involved in data discussions. Most of my career boosting events have achievements around data driven output delivered by me to the business.

Though I knew basic SQL, I was still thinking that I don’t know much about the data modeling. Whenever and whatever little I did, was on the fly with some logic for the end goal in mind. For the majority of situations my solutions did what it supposed to do and helped during the course.

Now looking back after reading the book, I feel I could have done even better if had read this book earlier. Never mind there is always an opportunity to implement your learning into work. In fact, there is question in the Chapter 16 “How do I keep my modeling skills sharp?” And Steve answered, “Look for every opportunity to model or participate in the analysis and modeling process, even outside the traditional roles of a data modeler”

I am short of words to explain my happiness about rediscovering (something I knew little, interested in building more on it) with such clarity now.

To make it specific here is what I like about the book,

  • Simplicity – Section Break ups, topic flow and examples are very simple to follow & understand. I approached like novice but I was able to recollect situations I have been into as the examples with simple to grasp.
  • Articulation – The analogy to understand data model with basic human instinct of “wayfinding” and excellent concept visualization through example of camera features to understand data model.

So anyone interested in learning or enhancing Data Modeling, I strongly recommend reading this for sure.

2014 in review

The WordPress.com stats helpers prepared a 2014 annual report for this blog.

Image

Here’s an excerpt:

A San Francisco cable car holds 60 people. This blog was viewed about 290 times in 2014. If it were a cable car, it would take about 5 trips to carry that many people.

Click here to see the complete report.

Personally I am very happy with 2014. There were several moments of personal & professional learning adding to my maturity.

  • Passing PMP exam was most satisfying (a professional milestone)
    • It triggered my attention to other topics like ITIL, MOF, DevOps, Prince 2, Agile Practices, TQM, Six Sigma & other quality management subjects. I did some self-study
      • Comparing the methodologies,
      • Looked back where & how I was involved in some of these areas and my learning & accomplishments,
      • Advantages & challenges implementing them,
      • Governing Bodies & available certifications and so on.
    • It also helped me get back to blogging. Looking forward to continue it for long time and aspire to achieve next level of blogging, writing & pubic speaking on coming years.
  • I took some online learning on “Business English” . Its essential part of career growth to be able to engage effectively with business stakeholders. It was exciting to know how some of the common sense things are viewed in business language.
  • Did online course on “Digital Payments“.  It was good to understand some of the important concepts followed worldwide in the area of digital payments.
  • Started learning BIG DATA & Internet Of Things and related concepts to enhance my knowledge in the given space.
  • In December attempted the 3rd year exam in Tabla (Yet to get results). Learning music is an awesome experience.

I am excited and looking forward to 2015. It brings me 365 more opportunities to learn new things & share my experiences with others.

Wishing a very happy & prosperous new year to all my friends & blog readers. Take care & have fun-filled life ahead.

SharePoint Revision Follow up

A month ago I wrote about My SharePoint Revision. Later I continued my learning on latest version. As I was learning new things I thought of updating the table created earlier. You can find them highlighted below. Out of all the new things I like following 5 the most,

    1. App Authentication (find more at Plan authentication in SharePoint 2013)
    2. Cross Site Publishing (find more at Overview of cross-site publishing in SharePoint Server 2013)
    3. OAuth and OData ( find more at About OAuth, OAuth 2.0 Tutorial)
    4. Faceted Navigation (find more at Configure refiners and faceted navigation in SharePoint Server 2013)
    5. Workflow Manager (find more at Install and configure workflow for SharePoint Server 2013)

Letter

Component / Concepts / Dependencies / Terms.

A

ASP.NET, Authentication, Authorization, Apps, App Parts, App Development, API, AJAX, Application Server, Active Directory, Analytics, Access, Architecture, ADFS, Application Pools, App Authentication, AppFabric, Alternate Access Mapping

B

Blog, BLOB, Breadcrumb, Business Intelligence, Business Data Connectivity, Backup, Big Data, Browser Support, Branding

C

Cloud, Content Database, CAML, Content Types, Content Management, Crawl, Columns, Calculated Formula, Content Editor Web Part, Community Sites, Community Portals, Cross-site Publishing, Category Pages, Content Search Web Part, Continuous Crawl

D

Databases, Document Sets, Document Library, Deployment, Device Channels, Decoupled Pivot Charts & PivotTable Reports, Distributed Cache

E

Event Handlers, Enterprise Search, Excel Services, Excel With Power Pivot, Event Viewer, External List, eDiscovery

F

Foundation Services, Farms, Features, Forms, Forms Authentication, Federation, Friendly URLs, Faceted Navigation,

G

Global Deployment, Groups, GAC, Gatherer, Geolocation Field Type

H

HTTP, HTTPS, Homogenous & Heterogeneous Farms, Help, Health Analyzer Rules

I

IIS, InfoPath, Index Server Role, Indexer, Internet Of Things, Integration, In-Memory BI Engine (aka Vertipaq), Image Rendition

J

Jscript, JSON

K

Knowledge Management, Keywords,

L

List, Library, LDAP, Locations

M

Metadata, Master Page, Meeting Workspaces, Mobile, Managed Navigation

N

Network, Navigation

O

On Premise, Office 365, Optimized Mobile Browser Experience, OAuth, OData, OpenSearch

P

Portal, Permissions, Project Management, Project Server, Performance Point Services, Protocol, Push Notifications, Power View Add-in For Excel, PerformancePoint Services Dashboard Migration, Promoted Results (formerly called as Best Bets),

Q

Queries, Quick Launch

R

Restore, Recovery, Records Management, Rights Management Protections, Refiners

S

Security, Search, Site Collection, Site, Social, SQL Server, SQL Reporting Services, SharePoint Designer, Solutions, Search Result Preview

T

Team Site, Topology, Tools, Timer Jobs, Troubleshooting, TCP/IP

U

Users, User Profiles, Upgrade Paths, UDP

V

Views, Visual Studio, Visio Graphic Services, Variations

W

Windows Server, Web Server Role,Web Gardens, Web Page, Web Part, Web Service, Workflow, Workflow Manager, WebDAV,

X

XML, XSLT

Y

Yammer

Z

Zones

Plain and Simple Internet of Things

 

I have been reading about Internet of Things (IoT) for quite a while now. It is a fairly complex subject due to its scope and overall impact. In this first post my attempt is to explain the concept of IoT in a plain and simple language. Hope it can help those who (like me) wants to start from simple and build more understanding in future.

What is Internet of Things?

The Internet is a large group of computers that are connected to each other. Going by this simple definition, IoT is something where anything and everything is connected over the Internet. This can include all living and non-living things having computing chips or processors either connected or inbuilt (embedded) into it for controlling and automating its functionality. Such things connect to the Internet using existing Internet connectivity mediums such as wired, wireless, or 3G/4G cellular connections.

The Past

IoT has its roots in the way computers and Internet have matured over precisely last two decades. It is not something entirely new rather it is the output how the computers and Internet had pushed all of us to automate and innovate by connecting things.

The Current State

IoT is already into our lives to some extent and continues to become a significant part moving ahead. Ask the following questions to yourself. Then extrapolate that with population of the world. Even if we assume digital literacy around 40%, you will understand that we are already on the path towards IoT.

  • How many devices do you interact with during the day? (My guess is minimum 10 out of list below),

image

1. Air Conditioner, 2. Air/Water Heater, 3. Car Audio,  4. Coffee OR Cold Drink Machines, 5. Desktop,
6. eBook Readers, 7. Gaming Console, 8. Gym Equipment’s, 9. Laptop, 10. Microwave,
11. Printer, 12. Refrigerator, 13. Remote Controls 14. Scanner, 15. Shaving Trimmer,
16. Smart Phone, 17. Tablets, 18. TV, 19.Various Smart Cards, 20. Washing Machine, 21. Wi-Fi Or Wired routers,

  • How many machines/devices you don’t interact with directly but are integral part of your living?

image

1. Debit/Credit Cards, 2. ATM Machine, 3. Point Of Sale Devices, 4. Bar Code Scanners
5. Fingerprint Scanners, 6. Surveillance Cameras, 7. Fuel Pumps, 8. Electricity
9. Solar Powered Devices, 10. Toll Booth, 11. Radio/Cellphone Towers, 12. Public Transport Vehicles
13. Car Engine, Batteries, 14. Weighing Tools, 15. Fire Extinguishers, 16. Motion Sensors, 17. Industrial equipment(s) And many more you can think of…

 

The Future

The following can help you visualize evolution and how big IoT will be,

image

To understand beyond these numbers lets understand following,

  • Technically

    • Its connected phenomena will push innovation in device automation.
    • As more things (living or non-living) get connected the importance of controlling and managing will become imperative and complex. This need will result in further push for more automation.
    • Connected things will start exposing lots of data every second. This will push huge data over the networks towards data centers. The need to handle this data will push the demand for analytical skills, tools and techniques.

 

  • Social and Environmental – Some scenarios to visualize,

    • Healthcare
      • Wearable devices like Smart Watches, Health Bands and so on will push in innovation in personal healthcare products. Oral-B already has Bluetooth connected toothbrush
      • The need for collecting critical health observations can push innovation in devices to treat complex diseases.
      • The devices (Wheel Chairs, Walkers, Hearing Aids, Glasses and Lenses) that are currently available in the market to help people with disabilities can go through a significant revision.
    • Education
      • With the cloud boom education-related innovation had a big surge in the past few years. IoT can extend this beyond Portals, Mobiles,Tablet consumption and e-classrooms
      • I am interested to see if it can bridge the gap between regular students and students with disabilities to be in the same classroom learning the same subject seamlessly.
    • Finance
      • Banks and Financial institution can go beyond ATMs, PoS, Card Chips, Online Banking to Wearable Devices for banking transactions.
      • There may be innovations in the space of customer service from Banks if Wearable become part of banking transactions
      • There may be enhancements to Security inside the Bank Operations, Safety Lockers, and Inter-bank Transactions.
    • Transport : Imagine Smart Vehicles getting more smarter by:
      • Sensing and Adjusting Driving Preferences, Passenger Preferences, Tracking and Guiding routes, Tracking Real Time Vehicle Performance that can helpful for service centers and manufacturer for innovations.
      • In public transport do smart Fleet Management, Track Commuting Data, make it available for authorities to Plan Capacity Based on Patterns.
      • Can Supply Change Management see the surge in innovation to manage connections from Manufacture to Warehouse to Transit to End Customer by having always connected vehicles and instruments used for loading and unloading?
    • Infrastructure
      • Imagine rail tracks, roads, bridges, tunnels get connected. They may start tracking & sharing critical data for better signal management, avoiding accidents and planning required maintenance.
      • Electrical supply devices can track demand and supply for better utilization of energy resources.
      • Imagine garbage collection points get connected across the city. They may start sensing the waste type, quantity and patterns in usage. This data can be utilized for better waste management in colony/suburb/city which is biggest problem even for development countries.
      • Water supply channels get connected at various junctions. They may start sharing consumption details at end point level. It can help manage water conservation by planning supply appropriately on a need basis. It can also track the water quality and any related outcomes on processing, distribution, and consumption.
    • Agriculture
      • Operating water pumps, remote controlling greenhouse, sowing/cutting/grinding/ mixing devices are already in use by some large scale farmers. Imagine IoT making such things cheaper for small farmers.
      • Imagine innovated devices helping farmers do soil testing themselves, plan crops accordingly and maintain soil health by being less dependent on availability of experts.
      • Imagine a drones crawling/surveying the fields and keeping track of critical observations. Automated surveillance will enable farmers reduce damages or wastages.
    • Consumer Electronics  Biggest area where IoT will create footprint and eventually expand into other areas,
      • Imagine TV, Refrigerator, Air Conditioner, Washing Machine, Dish Washer, and Light Systems connected and tracking your usage/consumption. It can help personalize the experiences within family members. It will help customer service incidents by providing usage data. Tracked data can help manufacturers and service providers to customize and enhance product experiences.

If you have read till here I hope you can visualize what IoT is & will be soon. To keep it simple I am deliberately stopping here.

In future posts I will try to extend further & share my additional learning.
Free Icon Courtesy www.iconpharm.com

My SharePoint Revision

Let me begin Looking Back…

SharePoint Products & Technologies have biggest influence on my career & personal growth. Thanks to my Technology guru Sanjay Vyas,  I had opportunity to work very early on SharePoint during late 2001. At that time the beta release was called “Tahoe”. The final product came out as SharePoint Services & SharePoint Portal Server 2001.

Since 2001, I worked very actively hands-on on all versions (2001, 2003, 2007 & 2010). I also had chance to work on other related products like SQL Reporting Services, Fast Search For SharePoint 2010 and few others. I did different roles & grew professionally,

  • As beginner Explored the product with trial & error. Understood How Technology Should Be Learnt.
  • Did Implement Intranet for my first company. Learnt What it Takes To Implement Technology for the Business Purpose.
  • Worked as Technical Support Engineer. Understood How Customers Look at Same Technology or Solution Differently & How Important It Is To Give Quality Experience When They Face Issues.
  • Lead the Team Of Support Engineers. Learnt What It Takes To Lead With Technical Skills & deliver Value To Business.
  • Act as escalation point for the Professional SharePoint Support.  Realized How Working Efficiently With Vendors & Partners Is Critical To Business. Also How To Be Proactive in Starting New Operations Help Succeed.

Looking forward…

During 2011 till now, I gave myself time to gather other experiences (non-technical) by testing my comfort zone outside SharePoint. In that pursuit I stayed deliberately away from hands-on SharePoint 2013 work & experiences.  Now that I have gained those intended experiences, I thought of revising my SharePoint knowledge.

I decided a timeline for 7 days & at least couple of hours every day. Of course it was tough to put entire revision in that short span. I had to try something & I did following,

  • Step 1 – I thought of writing down what all I can think when think of SharePoint.  The list below may not be complete however the intention was not to write everything about SharePoint. It was just to do my memory dump.

Letter

Component / Concepts / Dependencies / Terms.

A

ASP.NET, Authentication, Authorization, Apps, App Parts, App Development, API, AJAX, Application Server, Active Directory, Analytics, Access, Architecture, ADFS, Application Pools

B

Blog, BLOB, Breadcrumb, Business Intelligence, Business Data Connectivity, Backup, Big Data, Browser Support

C

Cloud, Content Database, CAML, Content Types, Content Management, Crawl, Columns, Calculated Formula, Content Editor Web Part

D

Databases, Document Sets, Document Library, Deployment

E

Event Handlers, Enterprise Search, Excel Services, Excel With Power Pivot, Event Viewer

F

Foundation Services, Farms, Features, Forms, Forms Authentication, Federation

G

Global Deployment, Groups, GAC, Gatherer

H

HTTP, HTTPS, Homogenous & Heterogeneous Farms, Help

I

IIS, InfoPath, Index Server Role, Indexer, Internet Of Things, Integration

J

Jscript, JSON

K

Knowledge Management, Keywords,

L

List, Library, LDAP, Locations

M

Metadata, Master Page, Meeting Workspaces, Mobile

N

Network, Navigation

O

On Premise, Office 365

P

Portal, Permissions, Project Management, Project Server, Performance Point Services, Protocol

Q

Queries, Quick Launch

R

Restore, Recovery, Records Management,

S

Security, Search, Site Collection, Site, Social, SQL Server, SQL Reporting Services, SharePoint Designer, Solutions

T

Team Site, Topology, Tools, Timer Jobs, Troubleshooting, TCP/IP

U

Users, User Profiles, Upgrade Paths, UDP

V

Views, Visual Studio, Visio Graphic Services

W

Windows Server, Web Server Role,Web Gardens, Web Page, Web Part, Web Service, Workflow,

X

XML, XSLT

Y

Yammer

Z

Zones

  • Step 2 – Whatever I was not able to recollect well, I did specific search/reading/watching videos to get back the understanding.

At the end of week I felt happy about the amount of stuff I could revisit with this method. Some people may have already tried this kind of approach so I am not claiming something new. However I do want to share that this approach helped me not only revise SharePoint but also assess so many other things I knew & worked during my career till date.

It’s good to have this inventory handy to build focus areas, strengths & areas to be improved up on.

Quick PMBOK PMIisms Revision

In the last post shared my lessons learnt after clearing PMP in first attempt. Today I will share how I managed to connect 5 Process Groups, 10 Knowledge Areas and 47 Processes.

Who it may help…

This post may not help much for those who have been practicing project management for some time. With the practical experiences in the kitty one can relate PMBOK comparatively easy.

Why I am sharing this…

I had taken PMP prep workshop on PMBOK 4th Edition, didn’t work officially as project manager, had a gap in studies and by then PMBOK 5th Edition was out. I read PMBOK but while revising I struggled to connect 5 Process Groups, 10 Knowledge Areas and 47 Processes. This is very critical because you can’t just focus on one of them if you want to clear the exam well. You may have interest areas or hands on experiences in one or more knowledge areas of project management. However unless you don’t connect all the areas and processes the exam preparation will be tough.

Understanding complete picture of 5 Process Groups, 10 Knowledge Areas and 47 Processes flawlessly was a challenge for me. Knowing Processes is important however knowing exact name (PMIisms) as per PMBOK is critical. Exam may have question where multiple answers may look correct but as per PMIisms there will be only one and it can trick you. I wanted to tackle silly mistakes effectively.

What was the need?

I was unable to recall so much text required to revise concepts, knowledge and question & ways to answer. This may not be the case for some people. However those like me can try what helped me overcome the problem.

How it was achieved

Thanks to my colleague Amit Shahi for starting interactive discussion over a break. A discussion which later become useful tool for me to overcome the challenge.

One day while discussing general things we started conversation on PMP Preparation & PMBOK 5th Edition. He grabbed the markers and started whiteboard interaction.

  • He plotted 6 columns (1 Knowledge Area + Process Groups)
  • First we called out & wrote 10 Knowledge Areas in the first column.
  • Second we wrote 5 Process Groups
  • We started visualizing & writing what all activities, tasks & processes will be performed in a given Process Group within specific Knowledge Areas.
  • In the first attempt we didn’t get all the PMIisms correct and we used the PMBOK to validate ourselves.

We repeated this 4-6 times with gap of few days. Around 3rd attempt we started getting all bang on target. Later we both engrossed into respective projects and could not repeat this together.

Image

I continued to practice the chart. The plan was to use first 15 minutes putting the chart on rough sheet as ready reckoner throughout 4 hours. It was also recommended in couple of forums & books for managing exam time.

For almost month before exam, I practiced to put down the chart on paper within 8-10 minutes. Everyday morning the first thing I used to draw is chart & formulas before starting any other work. This proved very good revision at the start of the day when attention in high before diving into other routines. It also helped retaining the knowledge well.

I managed to reach 8 minutes during practice however during exam it took me 10 minutes. I was still within time J.

I practiced drafting important formulas for 7 minutes and managed to do it in 6 minutes during exam. So within first 16 minutes I had process chart & formulas ready for reference.

Here are the picture of my rough sheet at home,

Image

Image

Image

Initial target was to get the PMIisms right but in the end the exercise proved much more valuable than that.

  • I was able to visualize overall content well.
  • Mind Map helped retain the content well.
  • Made me confident for exam.

Warning not to rely only on this tip

Only rehearsing this may help you say/write all the PMIisms correct however that’s not enough. Make sure you get good understanding of Knowledge. Use this as supplementary to revise Process Groups, Knowledge Areas and Processes in quick time. This can be helpful to reduce time in reading content all over again and still be on track with revision during your busy work & life schedules.

Wish you success in clearing the exam well.

PMP in First Attempt: Lessons Learnt

On Sept 25th 2014 I cleared my PMP certification. I was happy at the biggest & valuable education milestone for me since I completed my graduation in 2000.

The first time I thought about getting certified was in Nov 2010 when I enrolled myself to get 35 PDU from the PMBOK 4th Edition preparation workshop. It took 4 years & self-study on PMBOK 5th edition for me to achieve the milestone.

In terms of timelines I was disappointed however after closely evaluating lessons learnt I am happy. During these 4 years,

Worked on multiple customer projects

Fundamental requirement to apply & be eligible for the PMP certification

Worked as Process Lead

Enhanced my planning skills, stakeholder management skills, team management skills and performance evaluation and reporting skills

Worked as full time pre-sales SME

Improved my understanding on estimation & importance of having right assumptions and estimates in place. PMP exam do check understanding on estimation and tool & techniques for estimation.

Volunteered as Project Manager for Community Project

Project didn’t succeed as expected however I had hands on experience in driving Idea to Reality and understood my areas for improvement. Also helped me understand how project management fundamentals could have increased the success of the project.

All the experiences helped me understand PMBOK 5th Edition concepts well enough to clear the exam.

My initial scope/target was to get the certification as soon as possible. However in those 4 years, in kind of rolling wave learning (like rolling wave planning) the certification became only the milestone.

Knowing & Mastering Project Management become the target by understanding PMBOK.

Here is my attempt to share the lessons learnt. I tried putting in 9Ws to understand easily,

Why

Do you need certification

Is it Certification Or do you want to enhance your knowledge supported by certification. The choice is personal and I don’t want to make any recommendations. Whatever is applicable in your case try be clear. Seek mentor if you are unsure.

What

Drives your decision to take PMP exam.

A mandate from work policies, A personal goal for career enhancement, and Its company sponsored certifications etc. This will help you stay motivated when stuck with obstacles during preparation.

When

Do you want to complete it?

In my case it was June to Sept 2014.Target will help focus your energies to prepare well. At high level you need to target following targets,

  • Taking PMI Membership
  • Gathering Data Point for Application
  • Submitting Application
  • Scheduling Exam
  • Preparing for exam
  • Testing with Mock Exams
  • Attempting Actual Exam

Which

Areas of project management interests you.

All the areas are important however knowing your own strength will help you accelerate learning in some of the knowledge areas. Remember your school days, you would have tried to score the most in favorite subject right.

Where

You can find help

If you have taken PMI membership required help is already available for members. Also a lot of help is available on internet however knowing your sources of help will reduce time in struggling to find right help when you are stuck with understanding particular knowledge area, tools & techniques. Find a mentor if available, If you have buddy utilize it as collaborative learning can give mutual benefits.

What

Book to refer

I referred only following books,

PMBOK 5th Edition.

http://www.pmi.org/

PMI Members get to download soft copy as part of membership. Make sure you read it at least once very thoroughly. I was told by people to read at least twice. Honestly I could not complete second round for all topics. I read topics which were not clear to me like Time, Risk & Procurement Management.

 

PMP® Exam Prep Products – Eighth Edition Published by RMC Publications, Inc.

http://www.rmcproject.com/certifications/PMP_HowToStudy.aspx

Personal opinion this book has more than sufficient knowledge about project management. I personally felt overdose in the first reading. Don’t lose patience while reading long chapters else there is danger to get defocused/interested. Based on your convenience read it with decent breaks to ensure you remain interested. This book can be your ultimate source to get clarity on most critical concepts for the exam preparation.

 

The PMP® Exam: How to Pass on Your First Try
Published by VELOCITEACH, INC.

http://www.velociteach.com/resources-2/the-pmp-exam-how-to-pass-on-your-first-try/

Personally I loved this book. While walking through the office library I came across this one. Found very interesting for the cover page. I was able to finish this book in close to 2 week. Completing this book was the turning point to my preparation. Easy and small chapters helped me understand required content well. The tests after the chapters helped gauge my strengths and weaknesses. After completing this book I read the above to resources to work on weak knowledge areas. It helped me immensely to grasp the content.

What

Tests to try

Work Out

Timelines

Plan daily, weekly & weekend study hours according to your workload and work-life balance. For 2 months, I studied at least 3-4 hours a day 8 hours on weekend. Of course I had to stretch to meet work-life however it was worth by planning time well.

What Next

After you are certified

Have a plan to retain the PMP credentials. You will find guidance on how to retain it by submitting required PDUs in 3 year cycle.

Most importantly, BE COOL, CALM & COMPOSED. There are so many things we can’t control.

I was struck with severe backache. I was forced by doctor to take complete rest over the only weekend just before my exam. For a moment I was panic. Doctor helped with medicines & my lovely wife helped me defocused from stress and worries about the preparation time lost.

Please drop your comments if you find this post helpful to begin your exam preparation. If it works I will be glad to know about it.

All the best.

Happy to be back to blogging…

It’s almost a decade when I last posted my previous blog post at http://windowsexplorer.blogspot.in/

I am bit disappointed that I stopped blogging for so long.

Things have changed a lot in technology, my career and experiences so I am not trying to continue with same blog site.

With this fresh start I wish to continue to share my knowledge, experiences, lessons learnt.