January 26th, 2010 — Software Development
A mention from a colleague made me look up Pivotal Tracker. It looks like a really nice tool for planning Scrums. We are using Version 1 on our current project, and I hate that beast. In comparison, Pivotal Tracker’s clean, usable interface looks really great.
I created a small test project to check it out. It is a somewhat opinionated software, and may not do some of the things that you expect it to do. For example, by default, there is no option to break down a story into tasks, or to assign points to bugs and technical tasks, but you can change that setting on a per-project basis if you want to. Check out their help section for other things it can or cannot do – Pivotal Tracker help.
And it is free with no limitations! What more can you ask for, go check it out today.
Another good write up on Pivotal Tracker –
Helping web developers and operations bridge the deployment gap
Thoughtworks Mingle vs. Pivotal Labs Tracker.
December 11th, 2009 — Spring
The developer release of Google Chrome for Mac has been around for a while.
Finally, the general beta release is out – Google Chrome for Mac.
December 10th, 2009 — Tech
I was trying to fix a WordPress Post Notification plugin to include the post author in the emails subject. Instead of inserting the author name it was leaving the @@author in the subject.
A little digging around found me the solution -
In sendmail.php->post_notification_create_email(), find -
$subject = get_option('post_notification_subject');
and add a new line after that -
$subject = str_replace('@@author', $post_author, $subject);
Ref – Post Notification forum
December 4th, 2009 — Tech
Wordpress documentation does a pretty good job of explaining the steps you have to take if you are moving your wordpress blog to a new domain.
See Changing The Site URL – Domain Name Change
Even after you update the guid in your WordPress database’s posts table by following the instructions there, you may find that some of the images do not show up, and the image and other links are broken.
Run this command to see if the problem is in the post contents in the WordPress database’s posts table -
select id, post_title from wp_posts where post_content like '%exampleoldsiteurl%';
(Replace exampleoldsiteurl with the old url of your blog)
If this shows posts that are using the old url, you need to replace that url in the post_content just as you did for guid -
UPDATE wp_posts SET post_content = replace(post_content, 'exampleoldsiteurl','examplenewsiteurl');
Make sure to carefully read the instructions on the WordPress Codex link above, and absolutely make certain that you have a back-up of your database before you run these sql commands on it.
December 1st, 2009 — Mac
Here is a visual guide to creating multiple Firefox profiles and set them up to run like separate applications on Snow Leopard.
Creating a new Firefox profile
Open terminal and execute the following command:
/Applications/firefox.app/Contents/MacOS/firefox-bin --ProfileManager
This should bring up the Firefox Profile Manager -
Go ahead and create a brand new profile.
Using Automator to run the new Firefox profile as an application
Now, on to creating a proper Mac application to run Firefox with your chosen profile. Continue reading →
October 6th, 2009 — Mac, Tech, Tips
Sometimes you need to manually resume a download in Safari, but you can’t, because the download url was part of a session that has expired.
Mac OS X hints has a handy tip on how to resume a download after Safari crashes – Resuming a download after Safari crashes.
With a slight modification to that process, you can manually resume a download that requires a session, for example by requiring you to log in to a website.
Follow the same steps as in the hint above, and after starting and stopping the download, copy the following two items (substitute the urls from the info.plist in the new download file) to the info.plist in the old download that you want to resume -
<key>NSURLDownloadURL</key>
<string>http://www.mypatchsite.com/patch.sit</string>
<key>DownloadEntryURL</key>
<string>http://www.mypatchsite.com/patch.sit</string>
Now open the old download package in Safari, and it should be able to continue the download from where you left it.
September 17th, 2009 — Databases, Tips
Oracle XE makes it really easy to export your database schema.
Go to the Oracle XE web interface (running on http://localhost:8080/apex/ by default), and login with your username (not the system user).
Choose Utilities -> Generate DDL. Check the tables for which you want to export the DDL commands, and you are good to go.

Oracle XE export schema
June 7th, 2009 — Tech
Google Chrome developer release on Mac -

Google Chrome on Mac
Being a developer release, it is incomplete.
How incomplete? You can’t run YouTube videos for example, a bunch of other plugins don’t work, and lots of other good stuff missing.
GMail works though, that is what I will be using it for now.
Download it here – Chrome developer release, if you can’t wait to see Chrome running on your Mac.
May 29th, 2009 — Tech
GMail changed the way we use email. It gave us conversations. We started using labels and searches instead of trying to manage folders. It spoilt us by giving us extensions (labs) and themes. It integrated chat and video into the email. And, we started to expect a lot more from web applications.
Google has just unveiled the next big thing they have been working on – Google Wave, and I can safely bet that it is going to have a much bigger impact on how we communicate than GMail did.
I just finished watching the Google Wave Developer Preview at Google I/O 2009.
It is absolutely mind blowing. Not only in how completely it changes the way we think about online conversations, but also in how much the Google team managed to do in the browser. Amaazing!!!
Go watch it now. It is an hour and twenty minutes, but it is time well spent
.
April 11th, 2009 — Android
Use a View with fixed height -
android:layout_width="fill_parent"
android:layout_height="2dip"
android:background="#FF00FF00" />
or, in code -
View ruler = new View(myContext); ruler.setBackgroundColor(0xFF00FF00);
theParent.addView(ruler,
new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 2));
Source – Romain Guy