new host test

Meetup Slides

Do you remember the meetup you went you to last week and there was an interesting presentation? The guy had code samples, contact info, project links and so much more valuable information. Well where are the slides now?

I am working on “Meetup slides” – a website to share presentations across meetups. You can view meetup slides here and access the source code here (forks and pull requests welcome).

bootstrap framework

Say Hello to Rust

Rust is a ‘C’ like programming language created by mozilla. I created this screencast – An introduction to Rust.
Feedback welcome.

Ready GIT set GO

Better tools create better products. Here are a few things that you can configure to make your git experience better. If you have a suggestion, please share via comments.

1. Check Git version

$ which git
$ git –version

2. Check git config default username, email

$ git config –global user.name “Your Name Here”
$ git config –global user.email “your_email@youremail.com”
$ git config –global color.ui true

To see the config settings for a particular git repository, you can run from the top level folder.
$ cat .git/config

3. Git shortcuts

There is a better way to configure git aliases inside git config, I personally prefer using bash shortcuts instead.
$ vi ~/.bash_profile
#git shortcuts
alias gs=’git status’
alias gb=’git branch’
alias gd=’git diff’
alias gc=’git checkout’
alias gsh=’git show’
alias gf=’git show –name-only’
alias gcon=’cat .git/config’
alias master=’git checkout master’
alias chekcout=checkout
alias cherry=’git cherry-pick’
alias unstage=’git reset HEAD’

I really do not want to remember the syntax for unstaging a file. If I want to unstage a file, I type unstage.

4. Git log format

$ vi ~/.bash_profile
# git pretty log
alias gp=’git log –pretty=oneline’
alias gl=”git log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Crese t %s %Cgreen(%cr) %C(bold blue)%Creset’ –abbrev-commit –date=relative”
$ gl -20

The default git log format is very verbose and when you grep for a particular keyword, it is much easier to all details of the commit. Example.
$ gl -100 | grep “autocomplete”

5. Git autocomplete

When you install git, you get autocomplete scripts for free. Just add them to your bash profile, and you are all set. You may also want to look at other contrib scripts that might be of help to you. E.g. git hooks, emacs/vim highlighting etc.
$ vi ~/.bash_profile
# Set git autocompletion
if [ -f /usr/local/git/contrib/completion/git-completion.bash ]; then
. /usr/local/git/contrib/completion/git-completion.bash

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

6. Git Branch on command prompt

Rather than doing a git branch to identify the current branch you are on, you can display the current branch on the prompt string. There are also other indicators which will be helpful, especially during merge conflicts.
$ vi ~/.bash_profile
# set up PS1 for git
export PS1=”$BLACK\u@Macbook \w$RED\$(__git_ps1) $GREEN\$ ”

7. Git Ignore File

$ vi ~/.gitignore
Github has a good collection of example files.

Have a git config example that you like to share? Please drop a comment.

Health Exchange Network

I was at Startup weekend San Diego 3 and I joined a team of 5 other wanna be entrepreneurs, most of them were non technical. The idea was shaped after a contest from the Department of Health and Human Services on building an innovative portal for managing discharge forms in electronic format. I already knew Jake (the person who pitched the idea) from a business class during my Masters and the idea appealed to me. I had the opportunity to play CTO for the weekend and I did a good job of building the app and getting it up and running. I built the app using Flask.

Source code: Hen Health on Github

Python 2.5+
Flask 0.7+ [http://flask.pocoo.org/]
sqlalchemcy 0.6+ [http://www.sqlalchemy.org/]
jinja2 [http://www.pocoo.org/projects/jinja2/#jinja2]
git [git-scm.com]
sql Lite/Mysql 5.0+ [http://sourceforge.net/projects/sqlitebrowser/]


The incredible problem solver started looking for new problems and one of things that I did was to plunge into apartment management software. I wanted to do some more market research and hence changed my idea. Read more about my experience at Startup weekend San Diego.

LocalWall is a simple local events app, built using DooPHP.

I have also published the code at Github. Localwall is also a good DooPHP example app.

Eclipse Debug Toolbar

Recently, I started using Aptana Studio 3 for my Django projects and I am pretty impressed with it so far. Aptana shares the same core plugins as that of Eclipse with some bells and whistles – ships with pyDev, built in terminal (like Kate), git integration, multi pane editor, smart bundles for python, django and django templates. Like Eclipse, aptana has a good set of tools for debugging django apps and this has been the primary reason for switching from the awesome textmate.

Just for kicks, and with “a nice to have” feature in mind, I tried building my own plugin for Eclipse. After some googling around and writing some java code, I got my hello world plugin up and running. The inspiration behind taking the time to learn the plugin architecture was to build a simple toolbar for debugging.

After an hour of fooling around, I created the Eclipse debug toolbar, which means now I can work in debug mode(which is almost all the time) and still have a full screen editor.

You can grab the eclipse icons here. Since both Eclipse and Aptana share the common base, this plugin (and most other plugins) works in both the IDEs.

Source Code: Eclipse Debug Toolbar on Github.

Eclipse Debug Toolbar

Ask Friends Facebook Application

AskFriends is a Facebook application. AskFriends allows you to ask questions to your friends about products before making a purchase. Users can also create a quick poll with multiple products. E.g. Which computer should I buy? a) Macbook Air b) Lenovo U400 c) Sony vaio Z123

To start with, askfriends currently uses data from amazon and we are working on adding more stores.

Besides reading generic reviews, users will be able to capitalize on social influence to get shopping suggestions.

Once enough data is collected, it will be easy to build a recommendation engine, shopping comparison and other business intelligence tools.

For a quick (25 seconds) tour, watch the video below. Thanks!!