Pages

Thursday, August 30, 2012

Add Git Branch to Bash prompt and a git goodie - SourceTree

Adding git branch to your bash prompt has become easier than before.

Edit your ~/.bash_profile to add following code

# Set git autocompletion 
if [ -f /usr/local/git/contrib/completion/git-completion.bash ]; then
  . /usr/local/git/contrib/completion/git-completion.bash
fi

GIT_PS1_SHOWDIRTYSTATE=true

if [ -f /opt/local/etc/bash_completion ]; then
    . /opt/local/etc/bash_completion
fi

PS1='\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

It not only adds branch name but also indicates the current status of your project. For example, when you add files to staging area, + is added after branch name. 
If you make further changes to staged files, it adds * after branch name to indicate there are unstaged files.

The above script also enables Git autocompletion which will help saving some keystrokes.

If you prefer GUI tool and even if you prefer command line, SourceTree is a must have tool for Mac users. It shows you all branches, their commits, the changes. You can do everything using it.


For newbies, it will make using git a lot more fun!

Tuesday, August 28, 2012

Getting Started with Android App Development

The beauty of Android development is that you are not restricted to any particular development environment. You can use any operating systems and any IDE you like. But since we will be writing Java code, Eclipse is a natural choice.

All you need are these 4 things

- Java SDK 6
- Eclipse IDE
- Android SDK
- Eclipse ADT plugin
- git (optional but recommended)

Get Java SDK


If you don't have Java SDK, getting it is simple. Download it from
http://www.java.com/getjava

Download Eclipse IDE


Download Eclipse Classic from http://www.eclipse.org/downloads/
If you are using Mac or Linux, and not sure if you are running 64bit or 32bit machine, inside Terminal run this command
$ uname -a
The output will tell you which eclipse binary you should download. Unzip and you have Eclipse.

Download Android SDK & Tools


Next step is to download Android SDK from
https://developer.android.com/sdk/index.html
Unzip the file you just downloaded. You should see android-sdk-mac folder. Copy it to a location where you want to download all other Android Development tools. Using terminal, navigate to tools folder inside android-sdk-mac and run android program
~/dev/android-dev/android-sdk-macosx/tools $ ./android  
This opens up Android SDK Manager. It shows you all installed components, the updates and also lists all available versions of Android SDK. This is where you will select what you need to download that includes, plain SDK, sample code, SDK source code, system images, Google APIs and also vendor specific components. If that's too much to take in, make sure you select for both Android 4.1 and Android 4.0.3
  • Documentation from Android SDK
  • SDK platform
  • Samples for SDK
  • ARM EABI system image
And under Tools category, select
  • Android SDK Tools
  • Android SDK platform-tools
And click install packages, next Accept all and let it finish.

The final step is to install Eclipse ADT plugin which makes Android development tools (mode on that later) part of the IDE for easy access. 

Download the ADT Plugin


  1. Start Eclipse, then select Help > Install New Software.
  2. Click Add, in the top-right corner.
  3. In the Add Repository dialog that appears, enter "ADT Plugin" for the Name and the following URL for the Location:
    https://dl-ssl.google.com/android/eclipse/
  4. Click OK.
    If you have trouble acquiring the plugin, try using "http" in the Location URL, instead of "https" (https is preferred for security reasons).
  5. In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
  6. In the next window, you'll see a list of the tools to be downloaded. Click Next.
  7. Read and accept the license agreements, then click Finish.
    If you get a security warning saying that the authenticity or validity of the software can't be established, click OK.
  8. When the installation completes, restart Eclipse.

Configure the ADT Plugin


After you've installed ADT and restarted Eclipse, you must specify the location of your Android SDK directory:
  1. Select Window > Preferences... to open the Preferences panel (on Mac OS X, select Eclipse > Preferences).
  2. Select Android from the left panel.
  3. You may see a dialog asking whether you want to send usage statistics to Google. If so, make your choice and clickProceed.
  4. For the SDK Location in the main panel, click Browse... and locate your downloaded Android SDK directory (such asandroid-sdk-windows).
  5. Click Apply, then OK.

Install Git


Git is an open source version control system. It works best for small projects as well as massive projects like Android platform itself. It will help you maintain different versions of your source code. In case you would like to download the Android source code, you will require git. It's very easy install.
Download it from below site and install it using package manager.
http://git-scm.com/

We will talk s more about git once we start developing actual applications. 

Next, we will talk about some Android Development Tools and will run our first Android app.


Monday, July 30, 2012

rbenv - A Simple Ruby Version Manager

rbenv is a new kid on the block! A simplistic ruby version manger which manages ruby versions and lets you switch between different versions easily and that's it.

Unlike rvm, it does not,

  • Have a configuration file - well there is nothing to configure other than ruby version
  • Install Ruby - you are on your own
  • Manage gemsets - Bundler is your buddy
It's good to have no frills version manager, but if you like rvm, don't switch to rbenv! You will surely miss rvm. 

How to Install Ruby On Rails on Mac - Updated

This post will guide you to prepare your Mac OS to install Ruby on Rails using rvm. It will also show you how to create a sample rails app to enjoy all the efforts involved in installation.

There is a good news and a bad news. First the good news. Ruby comes preinstalled on all Mac's.
To check which version you have, open up Terminal and type
$ ruby -v
The most current version as of July 2012 is 1.9.3.
Now the bad news, the version you have may not be the version you want and it's a pain to manage different ruby versions manually. Ruby Version Manager (rvm) does great job so it carry the burden of installing and managing different versions.

Step 0. Install git and gcc 

To check if you already have git, inside Terminal run this command
$ git --version
If you don't have git installed, download the recent installer from
http://code.google.com/p/git-osx-installer/downloads/list?can=3
Open the .dmg file and you will find the installer package. Follow the instructions to install git.

Ruby is compiled locally using gcc, hence make sure you have gcc installed.
$ gcc --version
Gcc does not come preinstalled on Mac. You need a developer account to install it separately.
  • If you are running Lion, login using Apple ID and download Apple's official Command Line Tools for Xcode. Simply double click .dmg file and then the enclosed .pkg file to start the installation process. 
  • If you on Snow Leopard, you can download Xcode (4 GB in size) and install it, which includes gcc. The easier option would be to download the unofficial Gcc compiler and related tools from osx-gcc compiler downloads page.
Step 1. Install RVM

Open up Terminal and execute this command -
$  curl -L https://get.rvm.io | bash -s stable
It downloads and runs RVM installation script.

If curl complains about certificates, try with -k option
$ curl -kL https://get.rvm.io | bash -s stable
If you run into other issues, make sure you have git installed. Don't worry, it's easy to setup.

Once rvm installtion is completed it shows the files it modified. rvm is now ready to be used. Close the current Terminal window and open a new one. Test rvm using
 $ rvm --version
You should see a version number with no errors. In case it was not recognized as a command you will have to load the rvm script into the shell so that shell can recognize 'rvm' as a valid command. You do that by executing following command verbatim.
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && "$HOME/.rvm/scripts/rvm" ' >> ~/.bash_profile

Step 2. Install Ruby using rvm
We will install 1.9.3 as part of this tutorial. To get a feel of what rvm is capable of installing, run this command
 $ rvm list known
It lists different versions of Ruby packages that can be installed and managed by rvm.
To install ruby use this format rvm install for example, 
 $ rvm install 1.9.3
It downloads the source code for ruby 1.9.3 and then compiles it locally. If there are any errors, rvm will also tell you how to fix them. Once done, it displays "Install - #complete"

To verify, list the installed versions using
 $ rvm list
It should list the installed version like this -

~$ rvm list

rvm rubies

 * ruby-1.9.3-p194 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

and now to double check, verify the ruby version itself using
 $ ruby -v
Now set it as your default ruby version.
 $ rvm --default 1.9.3
Optionally, you might want to generate Ruby core documentation by running
 $ rvm docs generate

Step 3. Install Rails and other Gems
It's simple. Run this command and it will install rails and all other dependencies which work with your ruby version. It also install the docs for al the gems. Takes some time ...
 $ gem install rails
To install SQLite 3, first verify you have sqlite3 installed on your system by typing
 $ sqlite3 -version
It will respond with a long version string. Now install ruby binding for sqlite using
 $ gem install sqlite3

Step 4. Ruby On Rails Test Drive
Now that you have all the required components in place, let's create a your first Ruby on Rails app to make sure everything is working smoothly. Again inside a Terminal window,  navigate to a directory where you want to create your new app. ~/rails-app for example. Run these commands one by one
$ rails new todos
This will create the template application with model, view and controller and some static files.
$ cd todos
Tell rails to generate scema for your todos app database and also generate controller and views for standard actions.
$ rails g scaffold todo name:string completed:boolean
Run database migration
$ rake db:migrate
Then tart the rails WEBrick server on default port 3000
$ rails s
Finally, point your browser to http://localhost:3000/ If you see a welcome page, your app is running fine. Congratulations! Your todos can be managed at http://localhost:3000/todos

When you are done, you can stop the server by typing CTRL+C in the shell window where you started it earlier.

Extra Credit: More rvm commands

To revert to system version of ruby, i.e. pre-rvm ruby use this,
$ rvm system
To go back to 1.9.3 or any other version, use
$ rvm 1.9.3
To get the list of all rvm commands,
$ rvm usage

Hope it helped!

Sunday, February 12, 2012

Sublime Text 2 - I'm loving it!


Leaving Notepad++ was not easy. The recommendation for TextMate was loud and clear. But it didn't impress me and the search continued. There came this new kid on the block - Sublime Text 2. I must say it's really Sublime. If you haven't tried yet, download it now - http://www.sublimetext.com/2 Not just mac users, but my ubuntu friends are also leaving their "vi" and gEdit for Sublime Text 2.

My favorite features -

  • multiple cursors - it's incredibly useful!
  • column select
  • crazy fast file switching - include 'Go to anything' search (cmd + p)
  • context specific search and replace
  • side by side multi-pane editing (like :vsp in vim)
  • auto completion 
  • bookmarks (like in vim)
  • distraction free mode
  • Snippet support 
  • Zen coding support 

And there is a package manager which makes installing new packages a piece of cake.

Terminal command to open up Sublime Text 2
It's simple, just create s symlink and add it to your PATH
ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl
Edit your ~/.bashrc or ~/.bash_profile to add this -
PATH=$PATH:~/bin
export PATH

Install package manager-

Open Sublime text 2, you can use subl command in your Terminal now.
Open the console by clicking View -> Show Console  and paste this in the console and hit enter. import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
Restart Sublime Text 2 to complete the installation process.
Presse cmd + shift + p to access the command pallet and then type 'Install packages" and hit Enter.
This will open up a list of all available packages. Select the package from the list and Enter. That's it. It will download the package and install it for you.

Here is the list - http://wbond.net/sublime_packages/community

A very quick way to create new folders and file - cmd + alt + n -
Happy Coding!