Posted by chetan
on Thursday, July 10
In my last post I mentioned Mingle eats too much RAM thus slowing down the server. Another thing I would like to mention is that it has big learning curve; I better learn FLEX than learning MQL.
Acunote on other hand is simple (no story cards) solution to manage agile products. No learning curve and one gets started in less than a minute. Add stories (backlog), create sprint, create sprintlog and that's it.
It has a very good feature of tagging which can be used to tag stories to differentiate them as bugs, defects, tests, tasks, features, change requests, must haves, should haves etc.
On scale of 10 I would give
Acunote - 7
(no project velocity, no users other than current 5 can create defects)
Assembla - 5
(No relationship between Task-Defects, is on the lines of oDesk not agile)
Mingle - 6
(learning curve, complex)
Posted by chetan
on Sunday, June 15
Before I started MingleServer
After I started MingleServer
Posted by chetan
on Sunday, June 15
Follow instructions below :-
Get couchdb
wget http://couchdb.googlecode.com/files/couchdb-0.7.2.tar.gz
tar -xzvf couchdb-0.7.2.tar.gz
cd couchdb-0.7.2/
sudo apt-get install automake autoconf libtool subversion-tools help2man build-essential erlang libicu38 libicu-dev libreadline5-dev checkinstall libmozjs-dev
./configure
If everything goes fine
make && sudo make install
Create user couchdb
sudo adduser couchdb
sudo mkdir -p /usr/local/var/lib/couchdb
sudo chown -R couchdb /usr/local/var/lib/couchdb
sudo mkdir -p /usr/local/var/log/couchdb
sudo chown -R couchdb /usr/local/var/log/couchdb
sudo mkdir -p /usr/local/var/run
sudo chown -R couchdb /usr/local/var/run
Copy couchdb init script to global so that it gets started on server startup
sudo cp /usr/local/etc/init.d/couchdb /etc/init.d/
sudo update-rc.d couchdb defaults
sudo /etc/init.d/couchdb start
Start browser and hit at http://localhost:5984/_utils/index.html
Posted by chetan
on Sunday, June 15
These are those product managers who came along wailing waterfall model and now struggle to learn and follow agile model but get everything wrong
One of them I experienced lately did everything is not agile but loved when called agile. This is how he managed an agile project
1. Fuck with requirements document; let’s have all the user stories spanned across various emails
2. I am too lazy to update wiki either
3. Fuck sprints and bloody iterations; develop and deploy daily
4. ARRRRGG!! Why developers prepare a timeline?
5. I am too lazy to manage QA; developer can you do it!!?
6. Let’s not differentiate tasks, tickets, change requests
Posted by chetan
on Monday, May 26
This is what I get when I try to use svn when subversion is not installed on my horny ubuntu :)
chetan@devtaa-desktop:~$ svn co http://code.djangoproject.com/svn/django/trunk/ django_src
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion
bash: svn: command not found
Posted by chetan
on Saturday, April 05
devtaa:rubinius chetanm$ shotgun/rubinius gem env home
/Users/chetanm/Downloads/rubinius/lib/rbx/gems/1.8.6
devtaa:rubinius chetanm$ shotgun/rubinius gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.1.0 (1.1.0)
- RUBY VERSION: 1.8.6 (04/04/2008 patchlevel 111) [i686-apple-darwin9.2.2]
- INSTALLATION DIRECTORY: /Users/chetanm/Downloads/rubinius/lib/rbx/gems/1.8.6
- RUBYGEMS PREFIX: /Users/chetanm/Downloads/rubinius
- RUBY EXECUTABLE: /Users/chetanm/Downloads/rubinius/bin/rbx
- RUBYGEMS PLATFORMS:
- ruby
- x86-unknown
- GEM PATHS:
- /Users/chetanm/Downloads/rubinius/lib/rbx/gems/1.8.6
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.rubyonrails.org"]
- REMOTE SOURCES:
- http://gems.rubyforge.org
- http://gems.rubyonrails.org
Also it works with rbx .. check this out
devtaa:rubinius chetanm$ rbx gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.1.0 (1.1.0)
- RUBY VERSION: 1.8.6 (04/04/2008 patchlevel 111) [i686-apple-darwin9.2.2]
- INSTALLATION DIRECTORY: /usr/local/lib/rubinius/lib/rbx/gems/1.8.6
- RUBY EXECUTABLE: /usr/local/lib/rubinius/bin/rbx
- RUBYGEMS PLATFORMS:
- ruby
- x86-unknown
- GEM PATHS:
- /usr/local/lib/rubinius/lib/rbx/gems/1.8.6
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.rubyonrails.org"]
- REMOTE SOURCES:
- http://gems.rubyforge.org
- http://gems.rubyonrails.org
Posted by chetan
on Monday, December 03
We have been really keen to implement EBS, in its full scope, at Synerzip couple of months ago and started developing an internal application (ofcourse in Rubyonrails) where
a. Each and every employee views his/her pending tasks
b. Adds daily time booking against these tasks. Each task is divided into different categories such as testing, documentation etc
This gives team/project lead an idea on who worked on what for how long; on daily basis.
Posted by chetan
on Friday, November 30
At Synerzip we have been using EBS to calculate near-to-real estimates for newer projects. How we do it is -
1) each and every task (small to big, direct to indirect) on a project is given a rough time estimate. If this project resembles to any previous project we have done before and shares 60-70% of tasks then we use near-to-real estimates (for tasks) derived from previous project.
2) Suppose, we want to derive near-to-real estimates for a new project which doesn't resemble to any older one.
a) ask developer to give each task, he/she is working on, a rough estimate
b) make developer re-enter the actual time on the task he/she has worked for
c) make developer to add reasons of the actual vs estimated varies @ 20%
This process gives us a) near-to-real estimates so that we can quote real delivery dates b) gives us productivity stats for developers c) etc
Posted by chetan
on Friday, November 23
Posted by chetan
on Friday, November 09
Tuple is Hash
What hash is to ruby, tuple is to erlang
rcolors = {{:color=>"white", :hexcode=>"ffffff"},
{:color=>"black", :hexcode=>"000000"}}
ecolors = {colors,
{white, ffffff},
{black, 000000}}.
List is Array
What array is to ruby, list is to erlang
rmix = %w(apple orange banana)
emix = [1+7,hello,2-2,{cost, apple, 30-20},3].
Posted by chetan
on Saturday, October 27
put this code block inside your application_helper.rb
def inside_layout(layout, &block)
layout = layout.include?('/') ? layout : "layouts/#{layout}"
@template.instance_variable_set("@content_for_layout", capture(&block))
concat(@template.render(:file => layout, :user_full_path => true), block.binding)
end
Now, use this method in layout, which you want to render in suppose 'application' layout
<% inside_layout 'application' do %>
your code
<% end %>
Posted by chetan
on Monday, October 22
You have a legacy database in which one table doesn't have primary_key defined. Now, activerecord needs a primary_key to run queries on this table. What do we do?
Create a migration and execute following SQL query
execute "ALTER TABLE table_name
DROP COLUMN to_be_primary_key,
ADD COLUMN to_be_primary_key BIGINT(20) AUTO_INCREMENT NOT NULL FIRST,
ADD PRIMARY KEY(to_be_primary_key);"