Within the JS language, strings are represented as sort-of-UCS-2-sort-of-UTF-16 [0]. This is one of the few problems with JS that I think merits a backwards-compatibility-breaking change.
5,056 karma · joined February 1, 2011
Within the JS language, strings are represented as sort-of-UCS-2-sort-of-UTF-16 [0]. This is one of the few problems with JS that I think merits a backwards-compatibility-breaking change.
As you pose it, it's now a race between the darker aspects of BitCoin and our ability as a world society to check off the items on your wishlist. I don't disagree that those are all good things to have, but I don't see how holding a gun to everyone's head and demanding short-term solutions to long-term problems is going to accomplish anything. I don't see a world where we get there in time.
I've complained about this before; use maximum frame delay [0] instead of FPS when measuring UI responsiveness.
[0] The maximum time elapsed between any two sequential frames during your test.
“In this age, in this country, public sentiment is everything. With it, nothing can fail; against it, nothing can succeed. Whoever molds public sentiment goes deeper than he who enacts statutes, or pronounces judicial decisions.” -- Abraham Lincoln
It's not really possible to enforce line-length with a user stylesheet (increasing the point size doesn't solve the problem, it just balloons the letters up to goofy proportions). This page just needs max-width set somewhere on the text container.
Political and social fixity (to use an obnoxious historian term) has been one of the overriding goals of the dominant Chinese polity since before the Great Wall was built. It's something that Westerners have a lot of trouble understanding -- Communism might be a fairly recent addition to China, but the value the Chinese place on stability is a tradition that dates so far back we have trouble measuring its age.
[1] I assume this was originally done to make git seem more approachable to SVN or CVS users.
Nit: technically, all Javascript functions are lexically scoped. The fat arrow permanently binds the value of "this", which is sort of like modifying the scope, but again not technically because "this" is a special keyword and not a variable.
JS's treatment of strings is even more wacky than you might think -- it is neither really UCS-2 or UTF16. Engines are semi-required to use UTF-16 representations of strings internally, but the API surface that is exposed to the JS code makes them look like UCS-2 strings (i.e. no surrogate pairs). However, if you stick a JS string into something that is UTF-16 aware, such as a DOM node, then the surrogate pairs will display correctly.
See [1] for a very clear explanation of this muddy subject.
Google Ideas is a think/do tank that explores how technology can enable people to confront threats in the face of conflict, instability or repression.
Their list of projects makes much more sense in that light.
Reflows are very expensive. So are repaints. Chrome dev tools will allow you to detect issues with both of those.
White was also the co-author of a famous prescriptive book on writing and grammar [1]. He knew what he was doing :)
Central concepts:
- Objects
- Prototypes
- Scope chains
- Closures
- Function.bind, Function.apply/Function.call
Gotchas:
- Behavior of the "new" operator
- Value of "this"
- Type coercion, falsiness of "", == vs. ===
- var hoisting
- if/for/while do not create scope
- function expression vs. function declaration
Many of the gotchas are self-evident if you learn the central concepts.
[1] https://chrome.google.com/webstore/detail/google-cast/boadge...