{"action":"created","issue":{"url":"https://api.github.com/repos/BrisJS/meetups/issues/61","labels_url":"https://api.github.com/repos/BrisJS/meetups/issues/61/labels{/name}","comments_url":"https://api.github.com/repos/BrisJS/meetups/issues/61/comments","events_url":"https://api.github.com/repos/BrisJS/meetups/issues/61/events","html_url":"https://github.com/BrisJS/meetups/issues/61","id":80365980,"number":61,"title":"Run all of npm. JS 4 Astral Unicodes. Srcoll 1e5 dom elements. JS 4 Units of Measure, et al ","user":{"login":"govpack","id":8147200,"avatar_url":"https://avatars.githubusercontent.com/u/8147200?v=3","gravatar_id":"","url":"https://api.github.com/users/govpack","html_url":"https://github.com/govpack","followers_url":"https://api.github.com/users/govpack/followers","following_url":"https://api.github.com/users/govpack/following{/other_user}","gists_url":"https://api.github.com/users/govpack/gists{/gist_id}","starred_url":"https://api.github.com/users/govpack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/govpack/subscriptions","organizations_url":"https://api.github.com/users/govpack/orgs","repos_url":"https://api.github.com/users/govpack/repos","events_url":"https://api.github.com/users/govpack/events{/privacy}","received_events_url":"https://api.github.com/users/govpack/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/BrisJS/meetups/labels/Lightning%20Talk","name":"Lightning Talk","color":"eb6420"},{"url":"https://api.github.com/repos/BrisJS/meetups/labels/Talk%20Volunteered","name":"Talk Volunteered","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-25T03:18:17Z","updated_at":"2015-05-31T10:02:25Z","closed_at":null,"body":"Here's an offer to present a short talk in 5 swatch beats [a strict 7 minutes 12 seconds] \r\n\r\nAbout How one might:\r\n  \r\n(1) Run/examine all (of an old snapshot) of npm\r\n(2) Handle Unicode from the astral planes in JS \r\nwithout the newser ES5 methods \"string\".codePointAt(position) && String.fromCodePoint(codePoint)\r\n(3) Scrolling 100,000 items on a page (better but still a work in progress)\r\n(4) Handle Units Of Measure (mass/length/time/dates/forex/css) Some current work to try and do a practical unification of: currency exchange, SI units, data flow, screen+css dimensions and positions,  etc, SI units, with some help/data/notation from ucum.js, = The Unified Code for Units of Measure, at http://unitsofmeasure.org/ucum.html, and other sources, for use in JS and stored as json.\r\n(5) Other modules or JS things of interest of late...\r\n\r\n...like how to lookup unicode characters (via unicode-search.net) automatically with a little local webservice and converts html tables into json (with tabletojson)\r\nhttp://unicode-search.net/unicode-namesearch.pl?verbose=1&print=1&term=wave\r\n\r\nI got interested in point number (2) after i noticed that font-family:Segoe UI Emoji; for codepoints around 127,891 (aka Emoji, etc) showed up in colour!!! even in textareas!!! even in my oldish WebBrowser control, which was a bit of a surprise. \r\n\r\nbest summarized in this talk: Mathias Bynens from Opera - Awwwards Conference 2015 on Vimeo\r\nhttps://vimeo.com/126112284\r\n\r\nSo I updated the main place i use String.fromCharCode(x) and  \"x\".charCodeAt(0)  to better use/read/return the surrogate pairs (or the 16 other astral planes, above the BMP). for characters above \\uFFFF since my context lacks the newer ES6 methods \r\n\"string\".codePointAt(pos) && String.fromCodePoint(codePoint) \r\n\r\nit wasn't too hard to do, \r\n\r\nmy existing function...\r\n\r\n```javascript\r\nfunction(x){/*CharCode2String+ String2CharCode*/if(typeof x=='number'){return String.fromCharCode(x)}return x.toString().charCodeAt(0)}\r\n```\r\n\r\nhalf a day later, with some code re-use, became...\r\n\r\n```javascript\r\nfunction(x){/*http://norbertlindenberg.com/2012/05/ecmascript-supplementary-characters/#String*/ \r\nvar ty=typeof x;if(ty=='string'){/*return x.toString().charCodeAt(0)|now|\"String\".codePointAt(pos)*/ \r\nvar a=x.charCodeAt(0);if(a>=0xD800&&a<=0xDBFF&&x.length>1){var b=x.charCodeAt(1); \r\nif(b>=0xDC00 && b <= 0xDFFF){return ((a-0xD800)<<10)+(b-0xDC00)+0x10000}} return a} \r\nvar a=[x]/*String.fromCharCode(x)|now|String.fromCodePoint(codePoint)*/ \r\nif(arguments.length!=1){a=[].slice.call(arguments)}else if(ty=='object'){a=x} \r\nvar C=[]; for(var i=0;i<a.length;i++){var c=Number(a[i]); \r\nif(!isFinite(c)||c<0||c>0x10FFFF||Math.floor(c)!==c){throw new RangeError ('Invalid code point '+c)} \r\nif(c< 0x10000) {C.push(c)}else{c-=0x10000;C.push((c>>10)+0xD800);C.push((c%0x400)+0xDC00)}} \r\nreturn String.fromCharCode.apply(undefined,C)}\r\n```\r\n\r\ni also added Mathias Bynens's \"jsesc\" which is worth a look at:\r\nhttps://mothereff.in/js-escapes#1🍉"},"comment":{"url":"https://api.github.com/repos/BrisJS/meetups/issues/comments/107151238","html_url":"https://github.com/BrisJS/meetups/issues/61#issuecomment-107151238","issue_url":"https://api.github.com/repos/BrisJS/meetups/issues/61","id":107151238,"user":{"login":"kevdesign","id":420276,"avatar_url":"https://avatars.githubusercontent.com/u/420276?v=3","gravatar_id":"","url":"https://api.github.com/users/kevdesign","html_url":"https://github.com/kevdesign","followers_url":"https://api.github.com/users/kevdesign/followers","following_url":"https://api.github.com/users/kevdesign/following{/other_user}","gists_url":"https://api.github.com/users/kevdesign/gists{/gist_id}","starred_url":"https://api.github.com/users/kevdesign/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevdesign/subscriptions","organizations_url":"https://api.github.com/users/kevdesign/orgs","repos_url":"https://api.github.com/users/kevdesign/repos","events_url":"https://api.github.com/users/kevdesign/events{/privacy}","received_events_url":"https://api.github.com/users/kevdesign/received_events","type":"User","site_admin":false},"created_at":"2015-05-31T10:02:25Z","updated_at":"2015-05-31T10:02:25Z","body":"The monday slot has an open floor section (at your request) so we can absolutely see you presenting if you have any of the above ready. :)"}}