A blog about software development, primarily in Java and about web applications.

Wednesday, May 21, 2008

Fix for Yahoo! Mail Crashing Firefox

This post may not seem like it's related to Software Development, but if you rely on a working browser to get your job done, problems with them or small features in them, can really impact your productivity. Here's a solution the problem I was having.

A few weeks ago, Firefox was frequently crashing on me. The culprit seemed to be either the Yahoo! toolbar or Yahoo! Mail. After searching around, I removed a .dll associated with the Yahoo! toolbar, but that didn't work. I then completely removed the Yahoo! toolbar, but that still didn't work. Finally the folks at Firefox put out a new update and I thought that may address the issue, but no still luck. It was now easy to find friends experiencing the same problem and tons of questions on Yahoo! Anwsers about this.

The problem was clearly related to Yahoo! Mail's web UI now and Firefox would crash whenever I logged out or closed the tab that Yahoo! Mail was in. After living with this for a while, things got worse, my Firefox download dialog stopped showing entries. After searching for a solution to that issue, I found a link on Mozilla's site that recommended removing mimeTypes.rdf file used by Firefox. That didn't solve the problem. I then found another link that recommended deleting Firefox's downloads.rdf file. Finally after exiting Firefox, deleting both of these .rdf files and restarting firefox, I no longer am having issues with Firefox and Yahoo! Mail.

Here's the location of the .rdf files on my machine:

c:/Documents and Settings/username/Application Data/Mozilla/Firefox/Profiles/eak5tu9x.default/downloads.rdf

c:/Documents and Settings/username/Application Data/Mozilla/Firefox/Profiles/eak5tu9x.default/mimeTypes.rdf

I hope this helps someone else out there.

Thursday, May 8, 2008

Recursively Adding Files With Subversion

This script is for people who use the command line version of Subversion (SVN). I often use SVN's command line tools in Cygwin rather than in my IDE, eclipse. This is just Bash script that runs the svn stat command, pulls out all of the files whose status line starts with a question mark, and runs the svn add command on them.

You need to be cautious, if you have set up your svn:ignore property or your SVN config file to ingore temporary files this will blindly add them. After that, you can use the svn revert filename command to un-add them.

###
#.Name
# svnadd
#.What
# recursively finds all of the new files via the 'svn stat' command
# and runs the 'svn add' command on each one.
###

case "$1" in
-t) SVN_CMD="echo svn"
;;
-h)
echo Usage: $(basename 0) [-t|-h]
exit 1;
;;
esac

: ${SVN_CMD:=svn}

for f in $(svn stat | awk '/^?/ {print $2}')
do
$SVN_CMD add "$f"
done

Find and Grep with Subversion and Cygwin

Subversion (SVN) creates .svn directories to store information. These get in the way of the Unix/Cywin find command. Here's a Bash shell script that will ignore all of the .svn directories for you.

#!/bin/bash
#
#.Name
# sfind
#.Title
# Find Command for Subversion Workspaces
#.Author
# Don Mitchell (10/2005)
#.What
# Strips out the .svn directories when using the Unix find command.
#

if [ $# -lt 2 ]
then
echo Usage: $(basename $0) [path] [expression...]
fi

path="$1"
shift

find "${path}" ! -wholename '*/.svn/*' -a ! -wholename '*~' \
-a ! -wholename "*/.*.swp" -a "$@"


I put this script in my PATH and then add a few aliases to make it easier to invoke.

alias sf='sfind'

This alias just abbreviates the actual name I gave the shell script. I should have just renamed the shell script. Example: sf . -name "*Foo*.java"

alias sff='sfind . -type f -print0 | xargs -0 grep'

This alias, sff, combines grep with find, grepping for the specified pattern in all files under the current directory. Example: sff SOME_CONSTANT_NAME

alias sfg='sfind . -name "*.java" -print0 | xargs -0 grep'

This alias, does the same thing as my sff alias, but it only greps in Java files and ignores everything else.

  • Example: sfg someMethodName

  • Example: sfg -l someMethodName # list just the file names containing that mehtod



alias sfn='sfind . -name '

This alias is another quick shortcut, but I rarely use it. For example, sfn "*Dao.java" will list all of the files under the current directory that end in Dao.java.

Wednesday, May 7, 2008

JavaOne Critique

As always, I'm enjoying the JavaOne conference this year. It's only the second day, but my usual criticism of the presentations holds true. The presenters love to show flashy demos and rarely if ever cover the gory details of how you manage the source code, build your project in a test environment, deploy to production, and manage developers using a mix of IDEs. In particular how do you handle the differences between development, test, and production environments: different databases, hostnames, mail servers, and other external resources that must be configured.

This is a minor point, but I would expect a developer's conference to talk about the development life cycle and environment. These issues get too little coverage.

Monday, May 5, 2008

Supporting multiple browsers

http://browsershots.org/

This is an interesting site I just found out about. I'm not sure how accurate the results are and if you are really paying attention to details in your page styling, then this is too slow to be usable. However, it still gives you a quick idea of how your basic web pages look and might highlight a browser that they look bad in.

You're still better off looking at what browsers your users use and then testing with them directly.

Saturday, May 3, 2008

Data Visualization in everyday applications

http://musicovery.com - This is a cool internet radio station. It's flash based, not java, but it's a great example of using data visualization to display data relationships in an area you may not have expected. I like this view of what you're listening to better than what you get in Pandora or Yahoo! Music Engine.