Three point estimation

As it happens, I often have to do estimates for small to kind of large projects. As most developers will know, estimating is not as easy as you think. It is even harder to guess-timate something you have never done before. During my project management classes, I did learn about three point estimation, a pretty useful tool which can help anyone get a more balanced estimate of how long the task or activity is likely to take.

Gantt Chart

As for all estimations, we need to first break down the project into individual tasks or activities. Once that is done, we need to decide on the time it will take to complete each task. However, rather than using a ballpark estimate, we can use three point estimating to get a more accurate idea. To do a three point estimation for a particular task or activity we need to get three different numbers: the most optimistic estimate, the most pessimistic estimate and the most likely estimate. Once we have these numbers, its possible to calculate the real value based on the three point formula. Start by adding your optimistic time to your your pessismistic time and then add four times the most likely time. Take the total and divide it by six. This will give us a result which is more likely to tell us exactly how long completing the task or activity is going to take.

The three point estimation formula

E = (O + P + 4 * L) / 6
O = most optimistic estimate
P = most pessimistic estimate
L = most likely estimate

For example, to write a blog post I could say that

O = 10 minutes
P = 60 minutes
L = 20 minutes

Thus my estimate is: (10+60+4*20)/6 = 25 minutes

Disable mouse acceleration on Mac OS X

The most annoying thing I encounter when occasionnaly working on a Mac is the mouse acceleration. I found a command line that will disable it but you need to relog after executing it:

defaults write -g com.apple.mouse.scaling -1

Note: Don’t touch the mouse settings in Preferences or it will override the above change.

Updating Magento code to be compatible with PHP 5.3

Even tough PHP 5.3 has been out for quite a while, there is still lots of old code out there that will not run correctly when moved from 5.2 to 5.3. In my case I had to move a 2 year old Magento website to a new server and ran into problems as the default version of PHP on the new server was setup as PHP 5.3.¬†Altough PHP 5.3 is a “minor” version, there is quite a few “deprecated” core functions and severak little things that just dont work the same anymore. So in this post I will explain specifically what functions I had to update and a couple of examples of how I did it in each case.

Continue reading “Updating Magento code to be compatible with PHP 5.3”

Fix Mantis Captcha Image open_basedir Error

I recently installed the lastest version of Mantis Bug Tracker. Sadly when I tried to signup for the first time, the captcha used in the signup form didn’t show up. Opening the generated jpeg file reveals several errors related to my server’s PHP security settings.

SYSTEM WARNING: ‘file_exists(): open_basedir restriction in effect. File(/usr/share/fonts/corefonts/) is not within the allowed path(s)

mantis/core/utility_api.phpin utility_api.php’ line 253
mantis/core/utility_api.phputility_api.php’ line 255
mantis/core/utility_api.php line 257
mantis/make_captcha_img.php line 124

To fix the problem I added a fonts folder within my Mantis installation root, added the ARIAL.TTF font file inside that folder and then added a $g_system_font_folder variable to the mantis configuration file config_inc.php to point to the fonts folder.

Step by step guide

Continue reading “Fix Mantis Captcha Image open_basedir Error”