Double Your Icon Set

I use an icon set that has beautiful, full color icons ( However, sometimes a grayscale version of an icon can be used as a subtle control, or to allow other icons and page elements to appear more prominently.

ImageMagick can be used to convert full color icons into beautiful greyscale icons, very quickly.

convert ok.png -colorspace Gray grey-ok.png

Original image: Color OK

Greyscale image: Greyscale OK

dojox Grid Select Indicator Demo

Demonstration of a selection indicator for a dojox grid.


  • Grey checkmark serves as select all/deselect all, if no rows are selected, clicking on the checkmark will select them all, if any rows are selected, all will be deselected.
  • Row selector uses a green checkmark to indicate selection. Additional styling can be applied.
  • Add and remove rows work, but no save is performed.
  • Icons from Crystal Project (

* Demonstration is for the design, not operation of grid.

Create a Sitemap From a b2evolution Database

If content is moved to a different domain, one way to create a sitemap for old content is to use a database query.

First, find out the blog id:

select * from evo_categories;

Next, use this query to extract all posts in the categories that are part of that blog:

select concat(’’,date_format(post_datecreated,’%Y/%m/%d/’),post_urltitle) from evo_items__item join evo_categories on (evo_items__item.post_main_cat_ID=evo_categories.cat_ID) where evo_categories.cat_blog_ID=target_blog_id into outfile ’sitemap.txt’;

If you don’t have permissions to export into an outfile (.CSV file), you can just cut and pasted out of puTTY into NotePad or vi and then change the file to be a sitemap. Another option would be to pipe the MySQL output into a file and edit it.

The simplest sitemap is a list of URLs, with a different URL on each line. Remove any surrounding text or characters and then submit the sitemap to Google.

Open Source Partners

Many open source companies have partner programs. Companies that become partners demonstrate a commitment to the open source software.

Partnership does not guarentee qualification or competency. Before allowing partnership to influence your selection of a company, the following factors should be considered.

In most cases, companies purchase partnerships in an attempt to gain referrals and to access support resources. One may assume that purchasing a partnership to gain referrals indicates marketing difficulties or sales problems. Access to support resources is more difficult to assess, because companies that are pushing the envelope definitely need support occassionally, but support may also mean inexperience.

Companies that claim to be active participants in an open source community should provide links to their contributions. Contributions may range from bug fixes, extensions, themes, sample code, documentation, forum support, and donations. If a company can’t quickly show how they have contributed, their claim may not be honest.

The number of sites developed with an open source application can be a good indicator of experience level, assuming the team has the maturity to strive to improve their skills on every project. Any company that claims to be an expert with a product should have at least ten sites using the application. No two projects are the same. No two clients are the same. An expert company should have experience with enough different projects that they should have learned how to best resolve the most common issues.

A company should also state clearly what their specialty is with the application. No web company is good at everything. Some are stronger in design, some are better at integrating applications, some build excellent custom applications. Any company that doesn’t clearly state what they do best, and who can benefit most from their services may not have a real strength. They may be competent in many areas, but their solutions may not be as good as other companies.

Open source service providers may only work with one application. In that case, if you have already chosen the application, and you are sure that you want to use it, the company may be a good fit. However, if you don’t have a clear understanding of the available options, selecting a company that really only works with one application is likely to force your decision to fit their skill set. For a very large project, it may be better to invest some time in researching the requirements and the best path toward meeting them, prior to choosing a provider. Single product providers may also have a more limited skillset, due to the reduced exposure. The more applications you work with, the more you learn.

Never forget that open source applications are available for everyone. Check the resumes of the people who will be working on your project. Consider the level of education and the years of experience. Ensure they are inline with your expectations. Do the engineers have Computer Science degrees? Do the designers have Graphic Design or Art degrees? How many years of experience do they have? Do their titles match their education and experience?

Remember that a company that is very comfortable with a product, has a strong team that needs little support, and delivers quality work on time and under budget has little need for partnership agreements. They can stand on their own.

Using Crystal Icons with dojo's dijit tundra theme

The link above is a demonstration of the use of Crystal Project icons with dojo’s dijit tundra theme.

Crystal Project icons allow you to extend and customize tundra. Adding icons to inputs has the following advantages:

  • Many people can quickly look at the icon and enter the correct type of data, without reading the label or prompt. Obviously, this works best with familiar data types, such as times, dates, email addresses, and search strings.
  • If the inputs are in a table, the distance between the labels (column or row headings) and the inputs may be great enough that a quick visual reminder is valuable assistance for the user.
  • Multi-lingual applications almost always benefit from the addition of images.
  • The image are beautiful, they make the page look better.

The images chosen may have been intended for different uses. It is up to the designer to select the ones that work best.

There is also some overhead involved, each additional image is another HTTP request. The easiest way to improve perfomance is using browser caching, the next step would be to use ImageMagick to create sprites.

convert +append cp/16x16/apps/xclock.png cp/16x16/apps/yahoo_protocol.png new.png