Sunday, December 29, 2013

Non-Technical books that every technical person should read

Above books has been added to my list

Must Read
1.   The Seven Habits of Highly Effective People - By Stephen Covey
2.   8th habit: from Effective to greatness - By Stephen Covey
3.  Getting Things Done - The Art of Stress-Free Productivity - By David Allen
4.  The Now habit - A Strategic Program for Overcoming Procrastination and Enjoying Guilt-Free Play
5.  Greatest Salesman in the world - By Og Mandino
6.  Think and grow Rich
7. Crucial Conversations: Tools for Talking When Stakes Are High
8. You can win - Shiv Khera
 2. Leadership wisdom - Robin Sharma
3.  Decisive - Chip Health & Dan Health
4.  Switch - Chip Health & Dan Health
5. Made to Stick - Chip Health & Dan Health

Good Read
1. 4 hour work week - By Timothy Ferriss
2.  The 4-hour body - By Timothy Ferriss
3. The 80/20 Principle: The Secret to Achieving More with Less - By Richard Koch
4. Kiss that Frog
5. Never Eat Alone: And Other Secrets to Success, One Relationship at a Time
6. The monk who sold his Ferrari - Robin  Sharma
7. The Power of  your subconscious mind - Joesph Murphy
8. the gifts of imperfection  - Brene Brown
9. Daring Greatly - Brene  Brown

Thursday, December 12, 2013

Training Notes

1. Test double are very good substitutes for Mock. Mocking  has a big learning curve and makes it difficult for people new to TDD to adopt it.

2. Design meetings can be used to make software more testable and better.

3. Database based tests can be made faster by having subset of dataset.

4. We need separate libraries for Unit and Integration Tests

5. Open/Close principle can reduce regression testing

Wednesday, December 11, 2013

TDD Cycle

1. Write a failing test
2. Get it to compile but fail
3. Get it to pass
4. Refactor to the best code that you can write

Tuesday, December 10, 2013

Switch is bad.

Switch statement in c# code is bad smell.
It should be replaced by strategy pattern.
It doesn't allow us to implement polymorphism which is a key concept of oops

Open/Close Principle can be great

Open/Close principle is one of solid principles.
It states that class should be closed for modifications but open for extension.

If followed properly, it can reduce regression cost greatly and improve the quality of code.

Thursday, December 05, 2013

Machines are taking over the world

Is there a 'dark side' to Amazon drones, Google robots?

Amazon CEO Jeff Bezos showcased a drone delivery system called Prime Air on 60 Minutes this past weekend. The idea is that package below five pounds can be delivered straight from Amazon distribution centers to customers within 30 minutes using drones.

We learned this week that Google acquired seven robotics companies , which according to a New York Times report , “are capable of creating technologies needed to build a mobile , dexterous robot. “
Google has been experimenting with driver less cars, and is actually running a same-day delivery service in California, so it is definitely interested in human less logistics for lack of better term
 Google’s Andy Rubin, the engineer behind the Android operating system who is now heading up the company’s robotics effort said “I have a history of making my hobbies into a career”
Google co-founder Larry Page , who has argued that technology should be deployed to free humans from drudgery and repetitive tasks.

Wednesday, December 04, 2013

How writing can change your life

1. It clears your mind for higher-level thinking
2. It helps you process your emotion
3. It give you a record of past
4. You gain a sense of achievement
5. It helps you think big
6. It makes you more committed.

Tuesday, December 03, 2013

Amazon to use drones for delivering products on same day

Apple is acquiring twitter data analytic company
Healthcare. Gov has solved scalability problem. It can now handle 800000 visitors

Sunday, November 24, 2013

Is .Net boredom good for developers

Is .Net boredom good for developers?
Yes, it could be.
Last five years, I have read more books, articles and blogs on personal development, management, planning, self-help, Communication and Presentation skills.
It has helped software developers like me to pick up soft skill and appreciate soft and human side of technology.
It is not technology that matters but people do.

Is .Net boring now?

Is .Net boring now?
Short answer is yes and no.

Rocky wrote a nice mail on future of .Net
.Net and JavaScript is losing its trendiness. JavaScript looks to be trendy (CoffeeScript or TypeScript).
Client Devices:
We have consumer and business apps
Consumer Apps               
Apple, Google and Microsoft platform and development tool has good future. JavaScript is a possibility.
Consumer apps are a niche market compared to the business app space.
Business Apps
Business wants software that can build and maintained cheaply as possible. Rewriting the application to get a “native experience” does not seem viable.
Microsoft wants us to write us software cross platform JavaScript apps.
Today JavaScript is pretty hard because of differences between browsers and between browsers on different platforms.
JavaScript code may take more time as compared to .net/java but it is only hope for applications to work on Apple, Google and Microsoft Platform. It may be worth it.
JavaScript is like VB 3 in the early 1990s (or C in the late 1980s). It is typeless and primitive as compared to modern c#/vb or Java. To overcome  this it relies on tons of external  components.
JavaScript apps never go into a pure maintenance  code. Browsers and underlying operating systems , along with the numerous open source libraries you must user are constantly version and changing , so you can never stop  updating your app codebase to accommodate this changing landscape .

Server Software
So from a server software perspective , I think .Net and Java  have a perfectly fine future , because the server-side JavaScript concept is even less mature than client-side JavaScript.

Saturday, November 09, 2013

14 signs that your perfectionism is hurting you

It is okay to be okay.

Be expert in your core competency or skill  and be okay in others.

Wednesday, October 23, 2013

Thought of the day : know your application choking points

I was reading yesterday that government healthcare websites crumbled because users  have to create their user login and password to even browse the website.
This process was going through some gateways that caused the congestion

One should always know the bottlenecks in the application.

Own the best profiler and know what are the weak points.

Have solutions for those weak points.

Know the traffic and concurrent users to your website

Thursday, October 17, 2013

My 2103 Resolution Status

1.  PMP Certification (On Target)
2. Six Sigma Certification (Postponed to next year)
3.  Maintain proficiency in C#, Web technologies and Agile Practices(On Target)
4. Keep learning  Arduino and Objective C technologies. (UnderPeform)
5. Maintain Work and Life balance (On Target)

Saturday, October 12, 2013

Fail you way to success

Nice post by Scott Adam

Forget passion. Goals are for losers. Suffer defeat. Lots and lots of defeat.

The are opening lines of WSJ Article by Scott Adam, Creator of Dilbert.

Lot of successful people give advice “Follow you passion”.
As a loan officer , Scott Adam learnt that one should never make a loan to someone who is following his passion. For example, you don't want to give money to sports enthusiast who is starting a sports store to pursue his passion for all things sporty. He is a bad bet. He is in business for wrong reasons.
Some bankers will prefer to give loan to guys who have no passion but desire to work hard at something that looks good on spreadsheet.  e.g dry cleaning store or fast food franchise boring stuff.
Success generally causes passion rather than passion causes success.

If you never achieve goal, you don’t try anything. On the other hand, if you achieve you goal, you will bored or you will create new goal.

Your job is not your job: your job is to find a better job.  You need to have a system rather than be goal oriented. the system is to continually look for better option.
System can withstand failure and helps you to shift focus to another attempt.
Failure is where success like to hide in plain sight. Everything you want out of life is is the huge , bubbling vat of failure. The trick is to get the good stuff out.

Saturday, May 18, 2013

How to get others to see your potential

Nice Post by Dorie Clark

How to get others to see your Potential

  • Create Content. Write blogs, tweets, podcast, video-casts that demonstrates your expertise. Creating solid contents reminds people of your new skills and knowledge.
  •  Leverage social proof. If you are going to bother getting involved with a  professional organization, you should make a point to take leadership role, because the social proof of being seen as a leader will have exponential benefits.
  • Find a wingman . Nobody's like a person who self-promotes. Find a like minded person  who scratch your back and you scratch his.

What is future of .Net

Nice post by K. Scott Allen

  • Azure has become successful. Cloud computing  is more abstract over windows computing
  • Windows 8 Bombed
  • More innovations  happening in open source rather than in .Net Technology

Time to start looking  beyond what Microsoft offers for .Net Technology.

Sunday, March 31, 2013

Upgrading CruiseControl

TFS Version Control

TFS Version Control Basics

A workspace includes client-side folders on the local disk mapped to version-controlled folders on the Team foundation version control server.

Get Latest
You get the latest files from server to your client

Use cloaking to prevent users from viewing specified workspace folders or for folders you do not currently need. Cloaking is useful when you are working with files from two or more branches under a common parent to prevent you from copying files unnecessarily

Team Foundation version control provides the ability to add items to the server that are not bound to Visual Studio.

You use a Team Foundation version control changeset to store and find information about a single check-in operation.

Shelving lets you set aside a batch of pending changes temporarily and optionally remove the pending changes from workspace.

Different between ChangeSet and ShelveSet
When you check in one or more of the pending changes in your workspace, Team Foundation creates a changeset in the source control server. A changeset is a group of source file revisions, check-in notes, a comment, and links to associated work items. Similarly, a shelveset is a group of source file revisions, check-in notes, comments, and a list of associated work items. However, a shelveset does not contain a collection of committed and versioned file changes. Both shelvesets and changesets are stored on the Team Foundation server and can be retrieved into a workspace by any user who has sufficient permissions.
Other differences between changesets and shelvesets:
  • Unlike a changeset, a shelveset is a non-versioned entity. If you or another user unshelve the items of which a shelveset consists, edit several files, and reshelve the shelveset, Team Foundation does not create a new version of the items for future comparison and maintains no record of who revised the items, when, or in what manner. The original shelveset is completely replaced.
  • You can delete a shelveset but you cannot delete a changeset.
  • You can link a changeset to a work item so that when a user clicks the changeset link on the Links tab of the work item form, the changeset is automatically retrieved to the current workspace. This functionality is not supported for shelvesets.
  • You can prevent or at least, strongly discourage users from creating changeset that do not comply with established team standards by creating and enforcing check-in policies. This functionality is not supported for shelvesets. 

 Branching Strategically



Labels enable you to take a snapshot of your files so that at a later date you can refer back to that snapshot. By using your label, you can view, build, or even roll back a large set of files to the state they were in when you applied the label.