MOVED: My blog is now at

Code bits: US states select box

...and some more useful stuff. A select box, this time with the states of the USA listed along with their two letter codes as the values.

That site's a honeypot of resources too; I recommend reading it.


Jason posted this on Friday, June 29, 2007 at 4:36 pm.
Read comments (2). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Code bits: Country select box

Here's something that has been burning a hole in my library for a while and I never thought to put it up here. Thankfully, now I have realised that it could be useful to my colleagues around the world (although in this version the UK is selected). It was fully revised in March 2007 from ISO 3166-1 Alpha-2 country codes. Each country's corresponding "value" property is the two-letter country code from the ISO. Use it in your code freely, but please link here if you want to share the code with others. Enjoy...

<option value="AF">AFGHANISTAN</option>
<option value="AX">Ă…LAND ISLANDS</option>
<option value="AL">ALBANIA</option>
<option value="DZ">ALGERIA</option>
<option value="AS">AMERICAN SAMOA</option>
<option value="AD">ANDORRA</option>
<option value="AO">ANGOLA</option>
<option value="AI">ANGUILLA</option>
<option value="AQ">ANTARCTICA</option>
<option value="AG">ANTIGUA AND BARBUDA</option>
<option value="AR">ARGENTINA</option>
<option value="AM">ARMENIA</option>
<option value="AW">ARUBA</option>
<option value="AU">AUSTRALIA</option>
<option value="AT">AUSTRIA</option>
<option value="AZ">AZERBAIJAN</option>
<option value="BS">BAHAMAS</option>
<option value="BH">BAHRAIN</option>
<option value="BD">BANGLADESH</option>
<option value="BB">BARBADOS</option>
<option value="BY">BELARUS</option>
<option value="BE">BELGIUM</option>
<option value="BZ">BELIZE</option>
<option value="BJ">BENIN</option>
<option value="BM">BERMUDA</option>
<option value="BT">BHUTAN</option>
<option value="BO">BOLIVIA</option>
<option value="BA">BOSNIA AND HERZEGOVINA</option>
<option value="BW">BOTSWANA</option>
<option value="BV">BOUVET ISLAND</option>
<option value="BR">BRAZIL</option>
<option value="IO">BRITISH INDIAN OCEAN TERRITORY</option>
<option value="BN">BRUNEI DARUSSALAM</option>
<option value="BG">BULGARIA</option>
<option value="BF">BURKINA FASO</option>
<option value="BI">BURUNDI</option>
<option value="KH">CAMBODIA</option>
<option value="CM">CAMEROON</option>
<option value="CA">CANADA</option>
<option value="CV">CAPE VERDE</option>
<option value="KY">CAYMAN ISLANDS</option>
<option value="CF">CENTRAL AFRICAN REPUBLIC</option>
<option value="TD">CHAD</option>
<option value="CL">CHILE</option>
<option value="CN">CHINA</option>
<option value="CX">CHRISTMAS ISLAND</option>
<option value="CC">COCOS (KEELING) ISLANDS</option>
<option value="CO">COLOMBIA</option>
<option value="KM">COMOROS</option>
<option value="CG">CONGO</option>
<option value="CK">COOK ISLANDS</option>
<option value="CR">COSTA RICA</option>
<option value="CI">COTE D'IVOIRE</option>
<option value="HR">CROATIA</option>
<option value="CU">CUBA</option>
<option value="CY">CYPRUS</option>
<option value="CZ">CZECH REPUBLIC</option>
<option value="DK">DENMARK</option>
<option value="DJ">DJIBOUTI</option>
<option value="DM">DOMINICA</option>
<option value="DO">DOMINICAN REPUBLIC</option>
<option value="EC">ECUADOR</option>
<option value="EG">EGYPT</option>
<option value="SV">EL SALVADOR</option>
<option value="GQ">EQUATORIAL GUINEA</option>
<option value="ER">ERITREA</option>
<option value="EE">ESTONIA</option>
<option value="ET">ETHIOPIA</option>
<option value="FK">FALKLAND ISLANDS (MALVINAS)</option>
<option value="FO">FAROE ISLANDS</option>
<option value="FJ">FIJI</option>
<option value="FI">FINLAND</option>
<option value="FR">FRANCE</option>
<option value="GF">FRENCH GUIANA</option>
<option value="PF">FRENCH POLYNESIA</option>
<option value="TF">FRENCH SOUTHERN TERRITORIES</option>
<option value="GA">GABON</option>
<option value="GM">GAMBIA</option>
<option value="GE">GEORGIA</option>
<option value="DE">GERMANY</option>
<option value="GH">GHANA</option>
<option value="GI">GIBRALTAR</option>
<option value="GR">GREECE</option>
<option value="GL">GREENLAND</option>
<option value="GD">GRENADA</option>
<option value="GP">GUADELOUPE</option>
<option value="GU">GUAM</option>
<option value="GT">GUATEMALA</option>
<option value="GG">GUERNSEY</option>
<option value="GN">GUINEA</option>
<option value="GW">GUINEA-BISSAU</option>
<option value="GY">GUYANA</option>
<option value="HT">HAITI</option>
<option value="VA">HOLY SEE (VATICAN CITY STATE)</option>
<option value="HN">HONDURAS</option>
<option value="HK">HONG KONG</option>
<option value="HU">HUNGARY</option>
<option value="IS">ICELAND</option>
<option value="IN">INDIA</option>
<option value="ID">INDONESIA</option>
<option value="IR">IRAN, ISLAMIC REPUBLIC OF</option>
<option value="IQ">IRAQ</option>
<option value="IE">IRELAND</option>
<option value="IM">ISLE OF MAN</option>
<option value="IL">ISRAEL</option>
<option value="IT">ITALY</option>
<option value="JM">JAMAICA</option>
<option value="JP">JAPAN</option>
<option value="JE">JERSEY</option>
<option value="JO">JORDAN</option>
<option value="KZ">KAZAKHSTAN</option>
<option value="KE">KENYA</option>
<option value="KI">KIRIBATI</option>
<option value="KR">KOREA, REPUBLIC OF</option>
<option value="KW">KUWAIT</option>
<option value="KG">KYRGYZSTAN</option>
<option value="LA">LAO PEOPLE'S DEMOCRATIC REPUBLIC</option>
<option value="LV">LATVIA</option>
<option value="LB">LEBANON</option>
<option value="LS">LESOTHO</option>
<option value="LR">LIBERIA</option>
<option value="LY">LIBYAN ARAB JAMAHIRIYA</option>
<option value="LI">LIECHTENSTEIN</option>
<option value="LT">LITHUANIA</option>
<option value="LU">LUXEMBOURG</option>
<option value="MO">MACAO</option>
<option value="MG">MADAGASCAR</option>
<option value="MW">MALAWI</option>
<option value="MY">MALAYSIA</option>
<option value="MV">MALDIVES</option>
<option value="ML">MALI</option>
<option value="MT">MALTA</option>
<option value="MH">MARSHALL ISLANDS</option>
<option value="MQ">MARTINIQUE</option>
<option value="MR">MAURITANIA</option>
<option value="MU">MAURITIUS</option>
<option value="YT">MAYOTTE</option>
<option value="MX">MEXICO</option>
<option value="FM">MICRONESIA, FEDERATED STATES OF</option>
<option value="MD">MOLDOVA, REPUBLIC OF</option>
<option value="MC">MONACO</option>
<option value="MN">MONGOLIA</option>
<option value="ME">MONTENEGRO</option>
<option value="MS">MONTSERRAT</option>
<option value="MA">MOROCCO</option>
<option value="MZ">MOZAMBIQUE</option>
<option value="MM">MYANMAR</option>
<option value="NA">NAMIBIA</option>
<option value="NR">NAURU</option>
<option value="NP">NEPAL</option>
<option value="NL">NETHERLANDS</option>
<option value="AN">NETHERLANDS ANTILLES</option>
<option value="NC">NEW CALEDONIA</option>
<option value="NZ">NEW ZEALAND</option>
<option value="NI">NICARAGUA</option>
<option value="NE">NIGER</option>
<option value="NG">NIGERIA</option>
<option value="NU">NIUE</option>
<option value="NF">NORFOLK ISLAND</option>
<option value="MP">NORTHERN MARIANA ISLANDS</option>
<option value="NO">NORWAY</option>
<option value="OM">OMAN</option>
<option value="PK">PAKISTAN</option>
<option value="PW">PALAU</option>
<option value="PA">PANAMA</option>
<option value="PG">PAPUA NEW GUINEA</option>
<option value="PY">PARAGUAY</option>
<option value="PE">PERU</option>
<option value="PH">PHILIPPINES</option>
<option value="PN">PITCAIRN</option>
<option value="PL">POLAND</option>
<option value="PT">PORTUGAL</option>
<option value="PR">PUERTO RICO</option>
<option value="QA">QATAR</option>
<option value="RE">REUNION</option>
<option value="RO">ROMANIA</option>
<option value="RU">RUSSIAN FEDERATION</option>
<option value="RW">RWANDA</option>
<option value="SH">SAINT HELENA</option>
<option value="KN">SAINT KITTS AND NEVIS</option>
<option value="LC">SAINT LUCIA</option>
<option value="PM">SAINT PIERRE AND MIQUELON</option>
<option value="VC">SAINT VINCENT AND THE GRENADINES</option>
<option value="WS">SAMOA</option>
<option value="SM">SAN MARINO</option>
<option value="ST">SAO TOME AND PRINCIPE</option>
<option value="SA">SAUDI ARABIA</option>
<option value="SN">SENEGAL</option>
<option value="RS">SERBIA</option>
<option value="SC">SEYCHELLES</option>
<option value="SL">SIERRA LEONE</option>
<option value="SG">SINGAPORE</option>
<option value="SK">SLOVAKIA</option>
<option value="SI">SLOVENIA</option>
<option value="SB">SOLOMON ISLANDS</option>
<option value="SO">SOMALIA</option>
<option value="ZA">SOUTH AFRICA</option>
<option value="ES">SPAIN</option>
<option value="LK">SRI LANKA</option>
<option value="SD">SUDAN</option>
<option value="SR">SURINAME</option>
<option value="SJ">SVALBARD AND JAN MAYEN</option>
<option value="SZ">SWAZILAND</option>
<option value="SE">SWEDEN</option>
<option value="CH">SWITZERLAND</option>
<option value="SY">SYRIAN ARAB REPUBLIC</option>
<option value="TW">TAIWAN, PROVINCE OF CHINA</option>
<option value="TJ">TAJIKISTAN</option>
<option value="TZ">TANZANIA, UNITED REPUBLIC OF</option>
<option value="TH">THAILAND</option>
<option value="TL">TIMOR-LESTE</option>
<option value="TG">TOGO</option>
<option value="TK">TOKELAU</option>
<option value="TO">TONGA</option>
<option value="TT">TRINIDAD AND TOBAGO</option>
<option value="TN">TUNISIA</option>
<option value="TR">TURKEY</option>
<option value="TM">TURKMENISTAN</option>
<option value="TC">TURKS AND CAICOS ISLANDS</option>
<option value="TV">TUVALU</option>
<option value="UG">UGANDA</option>
<option value="UA">UKRAINE</option>
<option value="AE">UNITED ARAB EMIRATES</option>
<option value="GB" selected>UNITED KINGDOM</option>
<option value="US">UNITED STATES</option>
<option value="UY">URUGUAY</option>
<option value="UZ">UZBEKISTAN</option>
<option value="VU">VANUATU</option>
<option value="VE">VENEZUELA</option>
<option value="VN">VIET NAM</option>
<option value="VG">VIRGIN ISLANDS, BRITISH</option>
<option value="VI">VIRGIN ISLANDS, U.S.</option>
<option value="WF">WALLIS AND FUTUNA</option>
<option value="EH">WESTERN SAHARA</option>
<option value="YE">YEMEN</option>
<option value="ZM">ZAMBIA</option>
<option value="ZW">ZIMBABWE</option>


Jason posted this at 3:34 pm.
Read comments (12). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Many hands make... bad work?

Sometimes a quickie is just what's needed. No talk, just something quick-and-dirty. It was thus, like some street hooker getting into a kerb-crawler's car, that a job came in to do some amends to a very small property site, and I said "yes."

The working files were duly sent over, along with a short list of amends to do. "Easy enough," I thought. Nothing, however, prepared me for the horror of opening up the html files and finding what looked like the untidy mess of innumerable freelancers that had been there before me.

The site was misconceived from the start, encasing the whole site in flash, and using pop-up html windows to show the "zoomed" state of photos. Oh, and there were also a couple more pop-ups for good measure with actual content within, laid out using tables, of course. It was these pop-ups that I had to amend. They had used a mish-mash of inline attributes (bgcolor), a linked stylesheet that was not there any more, another linked stylesheet, and styles contained within <style> tags (two sets of.)

That wasn't even the worst of it. some table cells had background colours applied to them, which I had to change. Now, when I went to do that, i found the following unbelievable combination: each <td> tag had bgcolor. Then, when I'd deleted that, there was another colour coming from somehwere. It was bgcolor within the <tr> tag. Then, there was style coming from a styled <td> who's style was declared in one of the <style> sections in the head of the document. Lastly (are we there already?) there was style applied from a linked stylesheet to a td belonging to a table with a class of "indtable". Wow. Stunning job there, from all the freelancers that had been there before me. So, with all that junk cleared out, I applied the new colours through the linked stylesheet.

I don't really know what the moral of the story is. I suppose, the freelancers who had been there before me should have known better. The client actually has web developers in house, so they are not blameless here, either. I'm going to tell the client what I found, but I'm afraid it will fall on deaf ears: my contact is non-technical, and I'm sure that means the message won't be passed on effectively, if at all. The web development community as a whole must do more to educate our clients, or horrible stuff like this will just go on and on.


Jason posted this on Friday, June 22, 2007 at 4:25 pm.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Book Review: Life's a Pitch

Browsing round my local Borders waiting for a title to jump out at me wasn't the most constructive way to find a friend's birthday present, but it was all I could come up with at the time. I'd strolled around the fiction, sped through the kids' section, looked quickly at the computer corner (for myself, looking for the new ActionScript book by Colin Moock) and was around the strange juncture of religion, self-help and business books. And there is was, sitting on a table with a few other books that for some reason Borders had deigned to lay out on a table, rather than on the shelves.

Now normally I don't go for business books, but something about the look of it encouraged me to pick it up. Perhaps it was the subtitle: "How to be businesslike with your emotional life and emotional with your business life" Flicking through it tempted me enough to buy it.

It's about pitching, unsurprisingly, but more unexpectedly it's broadly about self presentation, persuasion, and being passionate about whatever you do. Divided into two parts, one by each author, the first part is presented as lots of short chapters each addressing a different aspect of "the pitch". It's written pithily in short paragraphs with a round-up of the points made at the end of each chapter. The language is simple and direct: exactly what I'm after.

The second part is much more literate and philosophical. It talks about historical figures and how they used their own brand of persuation and the art of the pitch to convince their contemporaries. It's packed full of references, and where the first part is concise and direct, this part is erudite and impressive in the breadth of its references.

I was really surprised with this book that I liked it as much as I did. On the face of it it's just about getting your own way, but I found that I could really get something much more from it: about finding what makes me passionate about what I do, and about pushing myself forward with that passion.

Life's a Pitch by Stephen Bayley & Roger Mavity


Jason posted this on Tuesday, June 19, 2007 at 7:53 pm.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button


Old dog new tricks, leopard changing spots, yadda yadda yadda. Here we are with a new Blogger skin. Bigger text, and a more fluid layout. So let me know what you think of it.

Technorati: Blog, design

Labels: ,

Jason posted this at 4:25 pm.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Further into the bush

... more on the Safari-on-Windows business. As a developer, it's great to be able to debug scripts - which not entirely coincidentally is what this post is about. You can enable the debug menu in Safari on Windows by simply editing a text file. So go on, do it.

Technorati Web development browsers safari


Jason posted this on Tuesday, June 12, 2007 at 3:56 pm.
Read comments (1). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Apples and Oranges

I thought it was a fantastical dream. I thought it was a myth. I thought it was the dragon, the fairy, the unicorn. Buy it's not.

Yes, Safari is now available on Windows.

Brilliant. I'm not some kind of Apple junkie, so I'm not praising it because I've always wanted to use it as my browser, but by God it makes my life easier. No more scrabbling round to a Mac to look at a development version of whatever site I'm building at the time. No need to fire up VM Ware with KDE just so I can get a Web Kit rendition of a site to check for bugs. No. Now, it's just a click away, on my main development machine. Absolutely marvellous.

Thank you Apple!

Technorati: Web development browsers safari

Labels: ,

Jason posted this at 9:50 am.
Read comments (1). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

The Passion of the Crosse

I'm reading a great book at the moment. It's called "Life's a Pitch" and it's - as you would expect - largely about pitching. What I love about this book though is that it's not all about pitching. It's about life too. About being passionate, taking risks, being charismatic, and building confidence.

It's presented really nicely - I'll stop now. I'll wait until it's finished and then I'll review it. Do we have a deal?

Technorati: Books business off-topic

Labels: , ,

Jason posted this on Friday, June 08, 2007 at 4:30 pm.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Adobe Live day 2

So, I went back for more. Today had a different feel for me, though. For a start I didn't have to queue up outside because I'd arrived slightly earlier. In good time to catch the first speaker of the day that I wanted to see: Hillman Curtis.

I saw him speak at Flash on the Beach, six months ago. Parts of the talk were the same: thankfully only the best bits. He was talking about portraits he did of dancers for a gallery in New York. It's good to hear someone with his profile talk about his work and his motivation and his background. He's a good speaker, engaging and warm.

Next up was Neville Brody. There was more than a full house to listen to his talk. The event had to be streamed into the next conference room because too many people wanted to see him. Luckily for me, I managed to bad a front-row seat for the live show ;o)

It's great listening to Neville speak. He's an inspirational figure for me: I got through university practically on the strength of "The Graphic Language" books alone. Again, rather than talk about technique or process, he talked a bit about his background, and about the designer's role as representative of the public when facing the client. And about being brave. I could listen to him for ages - even though he's not what I'd call a natural speaker, his manner and the content of what he's got to say carry a lot of weight and also just seems worth listening to.

The last speaker I saw was Brendan Dawes of mN. Another interesting figure. He's a charismatic presenter, and in common with the other speakers I saw today his passion shines through the talk. His talk was billed as a 'web showcase', although really it was about where to get the inspiration to make a good experience great. The answer according to Brendan is certainly not sitting in front of a computer. He was very convincing, and I'm glad I hung around for his talk: I was tossing up whether to go home or whether to go to his talk, when I thought I'd take a look in his book "Analog In, Digital Out" to see if it would help me decide. After flicking through, I though "I'm staying for that."

N.B. Book links are Amazon Associates links.

Technorati: Adobe Live 07


Jason posted this on Thursday, June 07, 2007 at 9:14 am.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button

Adobe Live 2007 day 1

I've just got back from this large live advert for Adobe CS3. The keynote was OK, the guys from Adobe showcasing the tighter integration of the CS3 suite now that the former Macromedia and Adobe apps are now under one roof. It looks like the work flow is much improved over the combination of CS2 and Studio 8.

I won't re-hash all that content here, as it's available lots of places elsewhere on the web. I will say though that I think there are some nice nifty touches in there that will help smooth away some of the awkward parts of the typical web build work flow. For example, the ability of Dreamweaver to remember the source PSD and optimisation settings of each image. In the properties box, click on the little Ps icon and you're taken right back to the PSD file which you can edit, then paste straight into Dw using the same optimisation settings you previously used. You can directly import the PSD into Dw, too. When you try, a Fireworks optimisations box pops up and lets you set your ideal settings for the web image format of your choice. It's great.

There are loads of little improvements like this across the whole suite of applications. The real test will be in the field, as ever. On the whole, positive.

There were a few familiar faces around the place today. Jon Harris and John Allwright from Microsoft (who didn't have a public presence there) and John Davies from Flash on the Beach too. Between sessions I even got to go and browse some Japanese art at a nearby gallery on Camden Town Passage. I'm looking forward to going again tomorrow. Maybe I'll buy something. If I do, it'll have to be Japanese art, because there didn't seem to be anywhere to buy CS3 in there.

Technorati: Adobe Live 07 Adobe eventstools cs3


Jason posted this on Tuesday, June 05, 2007 at 6:08 pm.
Read comments (0). Leave comment.

Blogmarks button Digg button furl button magnolia button Google Bookmarks button StumbleUpon button Yahoo MyWeb button