Wednesday, March 06, 2013

Modern Development Workflow For A Team

Development is a complex process and it becomes more complex when many people are pushing code on a same codebase.


  • Ideally a development workflow should be asynchronous, so that one does his work and fixes the issues assigned to him and doesn't get stalled by his team member's progress. 
  • In order to implement this, put up you more competent programmers to pair for a dependent modules such that that doesn't get stuck if one of the two programmer lag. 
  • If two developers are working for different modules in a project, working on a DVCS such as Git is a great boon. Also, Github gives a great workflow with Issues and Pull Request. Issues and milestones are a great way to schedule you development such that there is no mistake in planning. You get set tag on the issues so that developer will know what is the high priority task, and plan accordingly. 
  • Make sure your team members are competent if not experts with Git, it really helps if everyone uses git wisely. Private repos are handy as well when you are working on commercial stuff.
  • Using git-flow is a good choice. It truly brings sanity into the development workflow using Github and git. 
  • Realtime chatting via Skype is also a good choice, developers could ask stuff from each other without breaking other's flow. 
  • Also, make sure you people plan and discuss with each other before a days work and review at the end of day. One things is for sure, following this process will have you a more effective team.
Thats's it folks. If you like the post follow me on twitter : @vinitcool76


Tuesday, February 26, 2013

Guide To Start With Application Development.

In my opinion the best way to learn a language is to develop applications in it once you are comfortable with the syntax.
It is a great learning process and teaches much more than what reading a book will teach you. Development is itself a very vast process, let me detail  a very specific part of development. Web Based Application Development
Since it is a web based application, obviously you will have two parts, client side and server side.
For Client Side Applications: You can start with development of Chrome Extensions or Firefox Extensions. Alternatively, you can develop some Facebook or twitter Application. It will give you a great exposure to REST, plus you will get to work in the latest technologies as well.
For Server Side Applications:
Try and develop an restful API system, such as some API for a facebook Application where the Server crunches your data and you have some meaningful information in your application. It might sound easy but its actually a quite tough thing to accomplish. Still it is a great learning experience. You might want to refer some good books in this process.

Well, the point is you might not become a star developer of a sudden, but it will be one of the most rewarding experience in your software development process. Learning by doing, rather learning by failing in a very good process.

So take a crazy idea and Start hacking!



± May The Force Be With You! 

Sunday, February 24, 2013

How To Setup A Mac for Web Development.

Macs are beautiful machine. Luckily, I own a Macbook Pro that has 8GB ram and 256GB SSD. I am a Web Developer by profession so here are some tips that you could use to setup your mac.


  • Install Xcode: Install Xcode, preferably the full version, if you might like to develop for iOS or iPad. It is a free download from App Store.
  • Install Homebrew: This is a must and it is really satisfies the need to package manager in OSX.
  • Install dotfiles: Please use dotfiles, there are many good ones already shared on Github. You can use any one of them from here. Install Dotfiles
  • Install z, oh-my-zsh: Oh my zsh is one of the best and feature rich shell, do use it with combination of z. Z is a directory jumping tool and it is really handy. Install Z
  • Install and configure a text editor: Install Sublime Text2, Vim or Emacs as your text editor. They are most extensible and powerful editors and you can configure them to satisfy all your needs. Make sure you invest sometime configuring it to your taste and needs. It will be intensely productive and satisfying experience.
  • Install Node and NPM: If you are web developer , you must have dealt with JavaScript. You must install both of them. Not only it extends the package manager needs, it is basis of other good package managers for web.
  • Install Component, Yeoman, Bower and Grunt. These are some indispensable tools that are very important for any web / web app developer.
  • Install Chrome Canary: If you want to get the best Developer tools available , install chrome canary. It is the latest and provide great support for various things such as sass, compass etc inbuilt.
  • Install Google drive and dropbox: Please keep your important stuff in cloud so that you may never loose your data again. Also, you can backup your code in Github.
  • Install SizeUP: It is one of most productive software on mac and provides such great arrangement of Windows that you will be amazed. Either buy it or install the trial version. Install Sizeup
  • Install Git and create a account on Github, if you haven't already. There is such a vibrant community on Github, mostly great web developers that if you are not updated with it.You will loose great deal of useful information.
  • Automate most of the grunt jobs you do daily. Use build tools such as Make, Cake, Jake etc. Also, learn little bit of shell scripting. It really helps in long run.
  • Install Python and the module install tools such a pip and easy_install. It is really a must.
  • Install Ruby and ROR. They have pretty good community. Just a basis google search will get you going about the install and use process.
  • Install VirtualBox, it is an invaluable thing if you have to use another OS such as Windows or Ubuntu.
I guess these are pretty exhaustive list of TODOS if you using mac for web/web-app development. I will keep updating the post if i remember any more important thing. The baseline is that macs are great piece of hardware and a pretty decent OS, so invest sometime in setting it up. It will save you tons of time and frustation. Have a good weekend, Enjoy!

Configure Sublime Text2 for JavaScript Development.

I recently started using Sublime Text2 full time at work after being a vim user for more than 4 years. Vim is really good but it takes sometime to configure it properly. Well this is not a Vim vs ST2 debate. It is more of a vim user shifting to ST2 Tip.

The first thing that you should do is to install package control, it provide really good 3rd party plugins. You can check out the link how to install it. Install Package Control



Once done with that open package manager and install these useful plugins

  • JSHint.
  • JSLint.
  • DocBlockr.
  • AngularJS.
  • Mocha.
  • NodeJS.
  • Live Reload.
Also, there is good plugin for vim mode in Sublime Text2, you can use that if you don't want to 
waste the muscle memory. I highly recommend the real time linting with JShint. It will make you so much more productive and improve your code as well.

What really struck me was that Sublime Text enabled me to do almost everything i did with Vim without going into the pain of configuration. Also, the learning curve is not at all steep so i could get productive real fast.

Tuesday, January 15, 2013

Happy New Year Readers!

Best wishes for the New Year fellas, Last year this blog clocked more than 20k hits from all over the world.
Here are some stats:

Top 3 most hits :
Country Wise:

  1. USA
  2. India
  3. UK
Operating System wise: 
  1. Window
  2. OS X
  3. Linux
Browsers wise:
  1. Chrome
  2. Firefox
  3. Safari
With that said, recently most the posts are related to software development and programming, so this time i will try to improve the quality of posts and will be showcasing an Open Source project each week. 

Keep reading!

Tuesday, December 25, 2012

How To Subscribe Any Tag On Stackoverflow?



If you are developer of any kind you must have faced some issue and to resolve those you must have browsed Stackoverflow or related site. Here is how you can subscribe to particular tags or topics. See the screenshot below.

Say if you want to subscribe to all new questions related to Python , just fill in your tag, enter your email and mail frequency and you are good to go. Also you will need to confirm this subscription in your mail. Hope this helps you folks.

Friday, December 21, 2012

How to Setup An Ideal Front End Development Stack In Ubuntu 12.04?

Starting with Front-End Development and looking for a robust setup?

Install Ubuntu 12.04 and here are some of the tools and tips that could come handy if you are configuring it for the first time. I am not detailing on how to install these tools but rather would suggest on what could be good setup for development..

IDE: This is where you spend most of the time. So choose wisely among Sublime Text2, Vim or Emacs. Vim and Emacs are entirely customizable and comes with loads of plugin that would really improve your efficiency. Sublime text is an awesome code editor and you must try it first as it is highly effective and has a lower learning curve. Also there are loads of good plugins available that makes it a handy tool.

Servers: Install Apache 2, nginx and Node. This would cover most of the modern web server stack. Though node is technically not a server. But I hope you get my point.
Once Node and npm are installed there are some indispensable packages you must use. UglifyJS among others is a pretty handy one. Install Compass and CoffeeScript, also setup up jslint/jshint with your IDE. It will ensure a habit of shipping out quality code.

Browser: Use the latest and nightly builds of Chromium/ Firefox, you should work with latest once so not miss any good feature/ improvements.
  • Install the latest production release of Ruby, Python and Java, PHP or whatever is your choice of language. 
  • Learn Version control such as git and invest some time to learn it. It would save you tonnes of time later.
  • Last but not the least use yeoman . It is really gem of a tool, it , it gives a robust set of tools , libraries and a workflow that most of top developers use. Invest sometime in learning and using it and you will be always glad that you did. 


Installing each one them on Ubuntu 12.04 is easy and obviously it is free and freakishly stable. Configure once and worry about the important aspects of development.