Archive for February, 2006

Subversion tips: working with branches Feb 14 2006

Good article on branching techniques for Subversion.

Subversion is great software, essentially a major upgrade of CVS. Its branch support is stellar, for a few reasons:

* Visibility: Branches are physical copies, you can see all branches, stored by convention in the /branches folder. This is unlike CVS (or VSS) where branches are placed in the time dimension and are invisible, hidden “behind” the CVS HEAD revision.
* Efficiency: Branches are calculated as deltas and are not full physically copies, they are efficient and cheap to create.
* Global revisoning: the entire repository gets versioned on every change. As a result merging can be applied as the merging of two source trees; this is much easier to think about and execute than merging between two sets of files, as is the case with CVS.

Nonetheless there are some things you still need to take care of. As well as that many developers have learned to dread branches, either becasue of poor practices or weak tools, or both. With that here are twelve tips for working with branches in Subversion

Bill de hOra: Subversion tips: working with branches


PNG support javascript for IE Feb 14 2006

PNG for Win32 IE5.5 / Mac IE5 / Moz

Each of the flowers below is the same PNG format graphic with an alpha channel on four different colored backgrounds. Note how the backgrounds shine through the alpha layer.

new document – TransMenus – neat free Javascript menu script Feb 14 2006

This is a cool animated Javascript menu script that used to cost $150 and is now free. Cooool! ๐Ÿ™‚

These menus are a slightly cleaned up version of the ones I wrote for Media Temple back in the day. – TransMenus

unpaper 1.1 Feb 13 2006

Open source scanning software that corrects skewed scans so they align properly.

unpaper is a post-processing tool for scanned sheets of paper, especially for book pages that have been scanned from previously created photocopies. The main purpose is to make scanned book pages better readable on screen after conversion to PDF. Additionally, unpaper might be useful to enhance the quality of scanned pages before performing optical character recognition (OCR). unpaper tries to clean scanned images by removing dark edges that appeared through scanning or copying on areas outside the actual page content (e.g. dark areas between the left-hand-side and the right-hand-side of a double- sided book-page scan). The program also tries to detect disaligned centering and rotation of pages and will automatically straighten each page by rotating it to the correct angle. This process is called “deskewing”. Note that the automatic processing will sometimes fail. It is always a good idea to manually control the results of unpaper and adjust the parameter settings according to the requirements of the input. Each processing step can also be disabled individually for each sheet. Input and output files can be in either .pbm or .pgm format, as also used by the Linux scanning tools scanimage and scanadf. Conversion to PDF can e.g. be achieved with the Linux tools pgm2tiff, tiffcp and tiff2pdf.

unpaper 1.1

(Via reddit)

Download Google map tiles… Feb 11 2006

Say you want a 40×30 tile version of your local neighborhood to view “offline”? Go here and enter the coordinates to get the goods…

Of course, keep in mind, that, well, something like 40×30 = 1,200 graphics. You know, MATH, it’s all around us… ๐Ÿ™‚

See info at on how to determine your start image. Keep in mind that in this version, you’re determining the upper-left tile, not the center tile.


Super Mario Brothers Synth Board Feb 5 2006

Super Mario Brother Synth board, create your own SMB mix of songs and sounds

read more | digg story

Python at Google (presentation by Greg Stein given at SDForum) Feb 3 2006

I love this part of this nice piece about some of the technology / programming practices at Google:

Python programmers at Google must follow a strict style guideline (based on PEP8 with 2 spaced indenting). When engineers are first granted commit access to their SCM system, they must pass a style test. All code must pass through two sets of eyes before being checked in. That combined with liberal doses of unittest, pychecker and code coverage eliminates most non-algorithmic issues that might appear in python code.

Code checking? Two sets of eyes? Style test? Sounds like a good idea, although like it would slow down development a bit in a smaller shop, where often times only one person can really be working on a project at one time. But, improved final quality is probably worth it.

I guess if you want to be the next Google, you should try at least to create clean code like Google. Oh yeah, and write your web pages with C++. w00t. ๐Ÿ™‚

Read rest of the article: Python at Google (Greg Stein – SDForum) (

(via reddit)

So you need a hammer, huh? Feb 2 2006

This is pretty funny, and I suspect, more than a little bit accurate.

Let’s pretend I’ve decided to build a spice rack.

I’ve done small woodworking projects before, and I think I have a pretty good idea of what I need: some wood and a few basic tools: a tape measure, a saw, a level, and a hammer.

If I were going to build a whole house, rather than just a spice rack, I’d still need a tape measure, a saw, a level, and a hammer (among other things).

So I go to the hardware store to buy the tools, and I ask the sales clerk where I can find a hammer.

“A hammer?” he asks. “Nobody really buys hammers anymore. They’re kind of old fashioned.”

Surprised at this development, I ask him why.

Read the rest at The Joel on Software Discussion Group – Why I Hate Frameworks

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1) Feb 1 2006

Drag and drop upload of a file into Mozilla is possible? This promises to deliver that formerly IE – Windows only capability. Yay.

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1)

There has been a lot of focus lately on web applications which have enhanced rich-client functionality, such as the oft-published AJAX approach adopted by Google Maps and GMail. One of the features which is present for desktop applications but which is difficult to accomplish with a web page is drag and drop of something that didnรขโ‚ฌโ„ขt start off on the webpage (for example, dragging an image around a webpage is fairly easy to do, however dragging a file or shortcut from the desktop onto the webpage is much more difficult). In addition, although such functionality exists and is fairly easy to access with an ActiveX control for Internet Explorer, it is difficult to replicate inside of a Mozilla/Firefox browser due to the inherent complexities of cross-platform support as well as the stronger security model.

However, difficult does not mean impossible, and this article will describe how to create a control which allows a user to drag a file onto a webpage and upload it (automatically if desired) to a given server. I will mention now that this first part of the discussion will create a file which functions correctly on the local machine รขโ‚ฌโ€œ Part 2 will deal with the difficulties of packaging up this code in a Jar, signing that Jar, and deploying it on a remote server.

Creating a Mozilla/Firefox Drag and Drop file upload Script (Part 1) (

Web 2.0 Innovation Map Feb 1 2006

Hmmm…. No St. Louis companies listed here… yet. ๐Ÿ™‚

The Web 2.0 Innovation Map grew out of an interest in how Web 2.0 development is distributed geographically. Using the lists of Web 2.0 applications from various sources (see listings) and a bit of elbow grease to locate addresses, the Innovation Map was born. The locations listed here have come either from a WHOIS lookup or the contact information from the web site itself. Locations are not guaranteed to be accurate.

Web 2.0 Innovation Map

sell diamonds