Use dojo.hash instead of dojo.back

In Dojo 1.4, the Dojo Toolkit team introduced a new “dojo.hash” library for managing the back button in AJAX applications. It’s a replacement for “dojo.back,” which was available in Dojo 1.0. If you’re deciding whether to use dojo.hash vs. dojo.back for your next web application, you should use dojo.hash. Background: Back Button in AJAX AJAX… Read More

Introducing MultiMarker: The fastest way to add many hundreds or thousands of markers on Google Maps

At Google IO 2009, our fearless leader Sasha Aickin (my boss) demonstrated our high-performance Google Maps utility library to the world; we provided directions explaining how to code it, but we didn’t actually ship the code. Today, I’m proud to announce that we’ve made our MultiMarker utility library code (formerly known as SuperMarker) available to… Read More

How to Set Up Hot Code Replacement with Tomcat and Eclipse

This blog post will guide you through setting up Tomcat hot code replacement (also called hotswap debugging) in Eclipse. What Is “Hot Code Replace”? What’s the Catch? What About JavaRebel? Configuring Your Web Application in Eclipse Download Eclipse “JEE” Edition Switch to the “Java EE” Perspective Configure Your WAR Project Create a New Server Magic… Read More

Installing Beta Builds on iPhone

Probably the hardest part of learning to code an iPhone app is figuring out how to get your app installed on a phone. Even after you’ve installed your app on your personal development phone, installing it on other people’s phones for beta testing is especially tricky. Here’s the rough outline: Create an “Ad Hoc” Provisioning… Read More

Maven Reactor Tricks

Not many people know this, but you can use Maven to resume a failed build from the middle, or to build just a subset of projects in a multi-module (a.k.a. “reactor”) build. Example Reactor Project Consider this complex multi-module reactor build: my-root-project |– pom.xml |– barBusinessLogic | `– pom.xml |– bazDataAccess | `– pom.xml |–… Read More

Announcing SitemapGen4j 1.0

Redfin is happy to announce SitemapGen4j 1.0. SitemapGen4j is a library to generate XML sitemaps in Java. Download SitemapGen4j 1.0 What’s an XML sitemap? Quoting from sitemaps.org: Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is… Read More

URL Query Parameters and HTML Entities: The Case of the Missing Semicolon

What’s the difference between this HTML snippet: <a href=”http://www.google.com/search?q=html&foo=0″>foo=0</a> and this? <a href=”http://www.google.com/search?q=html&copy=0″>copy=0</a> Both of them look like simple Google searches (though they could have been anything; Google is just an example). One of them appends an extra “&foo=0″ to the end of the URL; the other appends “&copy=0″ instead. Only the second snippet is… Read More

Lightweight Headless Test for Trailing Commas in JavaScript

Yesterday one of my co-workers spent hours reproducing and tracking down a bug that turned out to be a stray comma. Unfortunately, Microsoft Internet Explorer doesn’t support trailing commas in JavaScript arrays and object literals.  Code like this won’t parse: var chord = ["do", "mi", "so",]; var json = { truth:”beauty”, beauty:true, }; Those final… Read More