phil has a blog

clea.nr - We make browser extensions and websites that declutter Amazon and YouTube.

society6 - Art Prints/iPhone Cases/Framed Art Prints/T-shirts/Canvases/Hoodies/Device Skins/Cards

subler - mp4 muxer

mp4 muxer and editor, to add tx3g subtitles, video, audio and chapters tracks compatible with quicktime in mp4

netindex - Download / Upload stats plus very nice charts and CSS3

31 CSS CODE SNIPPETS

Border: none not working on text input in Internet Explorer

Font Squirrel alt converter

Century Gothic - Open Font License alternatives

http://www.google.com/webfonts/specimen/Questrial
http://www.google.com/webfonts/specimen/Muli
http://www.google.com/webfonts/specimen/Didact+Gothic

Flame War - The Card Game of Extreme Moderation

mozilla - Bringing the Open Web to Mobile Devices

Broadband upgrade speed test 2 of 2 

Superfast BT Infinity (option 2)

Up to 76Mb download, Up to 19Mb upload

Max area speed 74Mb download

Day 3

In reality 10 GB in 20mins

Day 2

Day 1

Broadband upgrade speed test 1 of 2

BT Infinity (option 1)

Up to 38Mb download, Up to 9.5Mb upload

Evening

Midday

Xinha IE8 fix

Fixes IE8 the contents not submitting on unload (ie submit)

Xinha.htmlEncode = function(str)
{
  if (!str)
  {
    return '';
  }  if ( typeof str.replace == 'undefined' )
  {
    str = str.toString();
  }
  // we don't need regexp for that, but.. so be it for now.
  str = str.replace(/&/ig, "&");
  str = str.replace(/</ig, "<");
  str = str.replace(/>/ig, ">");
  str = str.replace(/\xA0/g, " "); // Decimal 160, non-breaking-space
  str = str.replace(/\x22/g, """);
  // \x22 means '"' -- we use hex reprezentation so that we don't disturb
  // JS compressors (well, at least mine fails.. ;)
  return str;
};

GROUP_CONCAT ORDER BY example


SELECT record_title, trusts FROM `site_knowledge_records` AS r 

LEFT JOIN (

SELECT o.record_id, GROUP_CONCAT(trust_name ORDER BY trust_name separator ', ') AS trusts FROM site_ke_to_orgs AS o
JOIN (SELECT trust_id, trust_name FROM site_trusts) AS t ON o.trust_id = t.trust_id

GROUP BY record_id

) AS o ON o.record_id = r.record_id

WHERE r.`record_id` = 453

jaksta - save rtmp streams