There’s a good article about supported HTML5 elements here: HTML5 element list.
Category Archives: Programming
ISO Language Codes and ISO Country Codes for HTML5 lang attribute
The HTML5 lang attribute can be a composite of Language Code and Country Code.
See Table of Language Culture Names, Codes, and ISO Values for combinations.
The following table contains values for Language Culture Names, Display Names, Culture Codes, and ISO 639x Values that are used by Commerce Server.
| Language Culture Name | Display Name | Culture Code | ISO 639x Value |
|---|---|---|---|
| af-ZA | Afrikaans – South Africa | 0x0436 | AFK |
| sq-AL | Albanian – Albania | 0x041C | SQI |
| ar-DZ | Arabic – Algeria | 0x1401 | ARG |
| ar-BH | Arabic – Bahrain | 0x3C01 | ARH |
| ar-EG | Arabic – Egypt | 0x0C01 | ARE |
| ar-IQ | Arabic – Iraq | 0x0801 | ARI |
| ar-JO | Arabic – Jordan | 0x2C01 | ARJ |
| ar-KW | Arabic – Kuwait | 0x3401 | ARK |
| ar-LB | Arabic – Lebanon | 0x3001 | ARB |
| ar-LY | Arabic – Libya | 0x1001 | ARL |
| ar-MA | Arabic – Morocco | 0x1801 | ARM |
| ar-OM | Arabic – Oman | 0x2001 | ARO |
| ar-QA | Arabic – Qatar | 0x4001 | ARQ |
| ar-SA | Arabic – Saudi Arabia | 0x0401 | ARA |
| ar-SY | Arabic – Syria | 0x2801 | ARS |
| ar-TN | Arabic – Tunisia | 0x1C01 | ART |
| ar-AE | Arabic – United Arab Emirates | 0x3801 | ARU |
| ar-YE | Arabic – Yemen | 0x2401 | ARY |
| hy-AM | Armenian – Armenia | 0x042B | |
| Cy-az-AZ | Azeri (Cyrillic) – Azerbaijan | 0x082C | |
| Lt-az-AZ | Azeri (Latin) – Azerbaijan | 0x042C | |
| eu-ES | Basque – Basque | 0x042D | EUQ |
| be-BY | Belarusian – Belarus | 0x0423 | BEL |
| bg-BG | Bulgarian – Bulgaria | 0x0402 | BGR |
| ca-ES | Catalan – Catalan | 0x0403 | CAT |
| zh-CN | Chinese – China | 0x0804 | CHS |
| zh-HK | Chinese – Hong Kong SAR | 0x0C04 | ZHH |
| zh-MO | Chinese – Macau SAR | 0x1404 | |
| zh-SG | Chinese – Singapore | 0x1004 | ZHI |
| zh-TW | Chinese – Taiwan | 0x0404 | CHT |
| zh-CHS | Chinese (Simplified) | 0x0004 | |
| zh-CHT | Chinese (Traditional) | 0x7C04 | |
| hr-HR | Croatian – Croatia | 0x041A | HRV |
| cs-CZ | Czech – Czech Republic | 0x0405 | CSY |
| da-DK | Danish – Denmark | 0x0406 | DAN |
| div-MV | Dhivehi – Maldives | 0x0465 | |
| nl-BE | Dutch – Belgium | 0x0813 | NLB |
| nl-NL | Dutch – The Netherlands | 0x0413 | |
| en-AU | English – Australia | 0x0C09 | ENA |
| en-BZ | English – Belize | 0x2809 | ENL |
| en-CA | English – Canada | 0x1009 | ENC |
| en-CB | English – Caribbean | 0x2409 | |
| en-IE | English – Ireland | 0x1809 | ENI |
| en-JM | English – Jamaica | 0x2009 | ENJ |
| en-NZ | English – New Zealand | 0x1409 | ENZ |
| en-PH | English – Philippines | 0x3409 | |
| en-ZA | English – South Africa | 0x1C09 | ENS |
| en-TT | English – Trinidad and Tobago | 0x2C09 | ENT |
| en-GB | English – United Kingdom | 0x0809 | ENG |
| en-US | English – United States | 0x0409 | ENU |
| en-ZW | English – Zimbabwe | 0x3009 | |
| et-EE | Estonian – Estonia | 0x0425 | ETI |
| fo-FO | Faroese – Faroe Islands | 0x0438 | FOS |
| fa-IR | Farsi – Iran | 0x0429 | FAR |
| fi-FI | Finnish – Finland | 0x040B | FIN |
| fr-BE | French – Belgium | 0x080C | FRB |
| fr-CA | French – Canada | 0x0C0C | FRC |
| fr-FR | French – France | 0x040C | |
| fr-LU | French – Luxembourg | 0x140C | FRL |
| fr-MC | French – Monaco | 0x180C | |
| fr-CH | French – Switzerland | 0x100C | FRS |
| gl-ES | Galician – Galician | 0x0456 | |
| ka-GE | Georgian – Georgia | 0x0437 | |
| de-AT | German – Austria | 0x0C07 | DEA |
| de-DE | German – Germany | 0x0407 | |
| de-LI | German – Liechtenstein | 0x1407 | DEC |
| de-LU | German – Luxembourg | 0x1007 | DEL |
| de-CH | German – Switzerland | 0x0807 | DES |
| el-GR | Greek – Greece | 0x0408 | ELL |
| gu-IN | Gujarati – India | 0x0447 | |
| he-IL | Hebrew – Israel | 0x040D | HEB |
| hi-IN | Hindi – India | 0x0439 | HIN |
| hu-HU | Hungarian – Hungary | 0x040E | HUN |
| is-IS | Icelandic – Iceland | 0x040F | ISL |
| id-ID | Indonesian – Indonesia | 0x0421 | |
| it-IT | Italian – Italy | 0x0410 | |
| it-CH | Italian – Switzerland | 0x0810 | ITS |
| ja-JP | Japanese – Japan | 0x0411 | JPN |
| kn-IN | Kannada – India | 0x044B | |
| kk-KZ | Kazakh – Kazakhstan | 0x043F | |
| kok-IN | Konkani – India | 0x0457 | |
| ko-KR | Korean – Korea | 0x0412 | KOR |
| ky-KZ | Kyrgyz – Kazakhstan | 0x0440 | |
| lv-LV | Latvian – Latvia | 0x0426 | LVI |
| lt-LT | Lithuanian – Lithuania | 0x0427 | LTH |
| mk-MK | Macedonian (FYROM) | 0x042F | MKD |
| ms-BN | Malay – Brunei | 0x083E | |
| ms-MY | Malay – Malaysia | 0x043E | |
| mr-IN | Marathi – India | 0x044E | |
| mn-MN | Mongolian – Mongolia | 0x0450 | |
| nb-NO | Norwegian (BokmÃ¥l) – Norway | 0x0414 | |
| nn-NO | Norwegian (Nynorsk) – Norway | 0x0814 | |
| pl-PL | Polish – Poland | 0x0415 | PLK |
| pt-BR | Portuguese – Brazil | 0x0416 | PTB |
| pt-PT | Portuguese – Portugal | 0x0816 | |
| pa-IN | Punjabi – India | 0x0446 | |
| ro-RO | Romanian – Romania | 0x0418 | ROM |
| ru-RU | Russian – Russia | 0x0419 | RUS |
| sa-IN | Sanskrit – India | 0x044F | |
| Cy-sr-SP | Serbian (Cyrillic) – Serbia | 0x0C1A | |
| Lt-sr-SP | Serbian (Latin) – Serbia | 0x081A | |
| sk-SK | Slovak – Slovakia | 0x041B | SKY |
| sl-SI | Slovenian – Slovenia | 0x0424 | SLV |
| es-AR | Spanish – Argentina | 0x2C0A | ESS |
| es-BO | Spanish – Bolivia | 0x400A | ESB |
| es-CL | Spanish – Chile | 0x340A | ESL |
| es-CO | Spanish – Colombia | 0x240A | ESO |
| es-CR | Spanish – Costa Rica | 0x140A | ESC |
| es-DO | Spanish – Dominican Republic | 0x1C0A | ESD |
| es-EC | Spanish – Ecuador | 0x300A | ESF |
| es-SV | Spanish – El Salvador | 0x440A | ESE |
| es-GT | Spanish – Guatemala | 0x100A | ESG |
| es-HN | Spanish – Honduras | 0x480A | ESH |
| es-MX | Spanish – Mexico | 0x080A | ESM |
| es-NI | Spanish – Nicaragua | 0x4C0A | ESI |
| es-PA | Spanish – Panama | 0x180A | ESA |
| es-PY | Spanish – Paraguay | 0x3C0A | ESZ |
| es-PE | Spanish – Peru | 0x280A | ESR |
| es-PR | Spanish – Puerto Rico | 0x500A | ES |
| es-ES | Spanish – Spain | 0x0C0A | |
| es-UY | Spanish – Uruguay | 0x380A | ESY |
| es-VE | Spanish – Venezuela | 0x200A | ESV |
| sw-KE | Swahili – Kenya | 0x0441 | |
| sv-FI | Swedish – Finland | 0x081D | SVF |
| sv-SE | Swedish – Sweden | 0x041D | |
| syr-SY | Syriac – Syria | 0x045A | |
| ta-IN | Tamil – India | 0x0449 | |
| tt-RU | Tatar – Russia | 0x0444 | |
| te-IN | Telugu – India | 0x044A | |
| th-TH | Thai – Thailand | 0x041E | THA |
| tr-TR | Turkish – Turkey | 0x041F | TRK |
| uk-UA | Ukrainian – Ukraine | 0x0422 | UKR |
| ur-PK | Urdu – Pakistan | 0x0420 | URD |
| Cy-uz-UZ | Uzbek (Cyrillic) – Uzbekistan | 0x0843 | |
| Lt-uz-UZ | Uzbek (Latin) – Uzbekistan | 0x0443 | |
| vi-VN | Vietnamese – Vietnam | 0x042A | VIT |
Xdebug trace != profile
So it just took me all night to figure out that in Xdebug ‘tracing’ is different to ‘profiling’.
It didn’t help that the xdebug.trace_output_name included an example format of ‘cachegrind.out.%s’. Why would you name a trace file cachegrind.out if only profile files are in cachegrind format!?
In my efforts to get profiling to work I found myself loading trace files into KCachegrind and getting the rather unhelpful message: “Could not open the file “/run/shm/xdebug/trace…xt”. Check it exists and you have enough permissions to read it.”
So the error message is about file permissions. I checked and checked and checked again but the file permissions were OK. The problem was I was loading a trace file, not a profile file.
So I gave up on KCachegrind and tried to get webgrind to work. Turns out loading a trace file (not a profile file) into webgrind doesn’t work either. I got the same problem reported by Sven about ‘parsers is undefined’. I fucked around trying to update the jquery.tablesorter plugin in webgrind, but the problem was due to the fact I was loading a tracing file, not a profiling file.
In the end I got it all figured out. Here’s my /etc/php5/mods-enabled/xdebug.ini file:
zend_extension=/usr/lib/php5/20131226/xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req ;xdebug.remote_host=127.0.0.1 xdebug.remote_host=10.1.1.203 ;xdebug.remote_port=9000 xdebug.remote_port=9999 ; http://www.xdebug.org/docs/all xdebug.profiler_enable=1 xdebug.profiler_output_dir=/run/shm/xdebug xdebug.profiler_output_name=cachegrind.out.%t.%R xdebug.auto_trace=1 xdebug.collect_assignments=1 xdebug.collect_includes=1 xdebug.collect_params=4 xdebug.collect_return=1 xdebug.collect_vars=0 xdebug.show_mem_delta=1 ;2 for HTML: xdebug.trace_format=0 xdebug.trace_options=1 xdebug.trace_output_dir=/run/shm/xdebug xdebug.trace_output_name=trace.%t.%R xdebug.var_display_max_children=-1 xdebug.var_display_max_data=-1 xdebug.var_display_max_depth=-1
The above config supports generation of tracing files and profiling files. I can now load my profiling files into KCachegrind and webgrind.
Everything is easy when you know how!
POSIX Signals in C: List of Signals
See POSIX Signals in C for a list of signals…
Seven habits of effective text editing
Got to read Seven habits of effective text editing…
…and Wholly Unbalanced Parentheses: My Vimrc…
…and slightly related OS X: Keyboard shortcuts…
Creating new config files with merge
To update a config file:
$ cp old.conf updated.conf $ merge -A updated.conf new.conf old.conf
Then edit updated.conf and resolve merge conflicts then deploy updated.conf.
Cleaning log files before printing them to the console
If you send non-printable characters to your TTY you might corrupt it, and that’s no fun.
So before you print log files which might contain dodgy data to a console clean it by piping it through tr like this:
tr -c '\11\12\15\40-\176' '?'
JSON Schema
Reading about JSON Schema…
Making text upper case or lower case in NetBeans
From the help:
Ctrl-U,L: lower case Ctrl-U,U: upper case Ctrl-U,S: reverse case
Debugging facebook and Open Graph
See here!