169 karma · joined July 28, 2008
Consider multitouch. Conventional mouse-desktop thinking orients us to one pointer and a one-point interaction mode. "Normal Users" (aka, the Your Mom archetype) new to the touch experience and to Eliss almost always use a single finger to drag around the screen objects, switching to two only to pinch. But around level 3, the game ramps up in difficulty, and this is when the magic happens. The user starts falling behind. Without asking or thinking about it, nearly every single one of them suddenly starts using their other hand. Nobody told them it would work! These are users terrified of clicking the File menu, because it once ate their Word document. Experimentation has a huge mental inhibition, and yet touch is so intuitive it bypasses the block. I've asked all these users whether they noticed -- and while this isn't rigorous by any degree -- nearly all of them reported they did not. This is magic.
Thank you Steph Thirion, for hours of enjoyment in Eliss as well as a lovely natural experiment in UX.
// => `45`, because `this.a` is resolved to `window.a`, as `window` is the global variable used as the method context when we call an unbound function (which is stupid (`null` would have been a way better choice, Brandon)).
var o = { a:13, add:function(b){ return this.a + b; } };
o.add(42); // => `55`
var add = o.add;
add(42); // => `NaN`, because `this.a` is (presumably) `undefined`
var a = 3;
add(42); // => `45`, because `this.a` is resolved to `window.a`, as `window` is the global variable used as the method context when we call an unbound function (which is stupid (`null` would have been a way better choice, Brandon)).
This is the sort of thing you learn and just get over to reach the level of javascript mastery. Yeah, some things are silly. But you know what? You only get to write one language to access the dynamic web.The important quality (in my practical understanding) is that a generic function's specialization is decoupled from the object system -- delegating to `x.__iter__()` doesn't require `x` inheriting a method from a parent; the process `iter(x)` uses to delegate might not even require any type information about `x` at all.
In both cases, the key observation is to realize that the meaning of the numbers is more important than the numbers (or how they're calculated, per se). This point is kind of abstract--especially compared to the salient examples in both pieces--but if you're looking to understand why this error is so common, look first to the fact that it's not an error of stupidity or insufficient maths.
You can sometimes avoid a big practical problem (e.g., an avenue to attack your system via diluting meaning ("spam")) by abstractly considering the meaning behind the structures available to you.
http://www.google.com/insights/search/#cat=0-5&q=cassand...
I added Cassandra, as it's substantially more popular than Riak (whereas HBase is not, and you only get 5 slots).
For example, we could force a double-valued transcendental function to float and back for a small loss of precision in normal cases:
#define sin(d) ((double)sinf(d))
Which yields... double i = 10
--> i = 10.0000000000
sin(i) = -0.5440211109
sinf(i) = -0.5440211296
delta = 0.0000000187
double i = 0.25
--> i = 0.2500000000
sin(i) = 0.2474039593
sinf(i) = 0.2474039644
delta = -0.0000000051
double i = 9999999.999999
--> i = 9999999.9999989998
sin(i) = 0.4205487007
sinf(i) = 0.4205478132
delta = 0.0000008875
(Format string was %25.10f, fwiw.)Another idea: Let's say we know the application relies on rand() to produce the correct distribution for testing, or maybe to generate session keys. Changing the semantics of the RNG won't result in a compiler bug, but it might result in the tests failing to cover all cases, or a horrible security breach.
http://www.oracle.com/technetwork/database/berkeleydb/overvi...
License for server usage is Sleepycat. http://en.wikipedia.org/wiki/Sleepycat_License
http://webcache.googleusercontent.com/search?q=cache:zlciYW0...
http://en.wikipedia.org/wiki/Linda_%28coordination_language%...
He's got quite a few essays on edge.org of some repute, including this one from 2000 in which he eerily and in detail predicts the move to event stream-based information presentation. Quantity, not quality, he says.
http://news.ycombinator.com/item?id=1759763
In any case, all the Mirror Worlds patent trial documents are available here:
http://news.ycombinator.com/item?id=1759843
From the summary there:
The document display lawsuit involved Apple's Cover Flow, Time Machine, and Spotlight displays. Plaintiff Mirror Worlds LLC alleges that Defendant Apple, Inc. infringed on U.S. Patent Nos. 6,006,227 and 6,638,313 B1 entitled "Document Stream Operating System" and 6,725,427 B2 entitled "Document Stream Operating System with Document Organizing and Display Facilities," 6,768,999 B2 entitled "Enterprise, Stream-Based Information Management System".
The results of my unscientific test (compression only):
Compressor Size Ratio Time
gzip -1 23MB 88% 1.18s
gzip -2 23MB 87% 1.38s
bzip2 23MB 87% 5.57s
xz -1 23MB 87% 5.35s
xz -9 11MB 43% 10.58s
bmz 13MB 45% 0.95sI am actually saddened I now know that. I kind of wish I could have had that same experience.
Berkeley Professor David Wagner conducted basically the same research as this dude: http://www.cs.berkeley.edu/~daw/faa/
He came to similar findings regarding selectees: http://www.cs.berkeley.edu/~daw/faa/noid.html
Neither of those pages are dated, though, so it's still possible things have changed in the past three years. Even so, it's worth noting that both these sites are reporting post-9/11 information.
I'm curious and a bit adventurous, so perhaps I'll give it a shot. I bought the jetBlue pass, so I'll have plenty of opportunities. http://jetblue.com/deals/all-you-can-jet/?intcmp=HPHero1Eng_...
I do not think college is terribly good at educating. Even so, I'm forced to admit the cliché is probably right: it's a powerfully life-changing, valuable experience. I came out of it with a radically reshaped worldview, tremendous energy, and much knowledge. My rate of progress while in college (in fact, mostly a few specific years) was much higher than any other time I remember.
...But I don't look back and think of important classes taken or works read. I see myself surrounded by brilliant, energetic peers. That's the Crucible Effect he describes. We talk about it when thinking of "startup-friendly" communities, or hacker groups, or even preserving the "character" of these boards. We're trying to keep the Crucible Effect intact.
Interesting.
"The Leaf car battery can be charged to 80% capacity in about 20 minutes, compared with almost three and a half hours needed for the G-Wiz."
Seems totally reasonable for an intra-city commuting vehicle. I can't see why something like this (even with a 100mi range) wouldn't be popular in NYC, LA, or Boston.
As far as my customers are concerned though, I think you'd be hard-pressed to find that 1% knows that .ly is Libya.
The service is as advertised; support exists. When they accidentally locked me out of my account by changing their control panel, things were resolved in less than two days via email.
That's good enough for me. Just remember: you are subject to Libyan obscenity laws. No porn, no bashing Islam.
These meditations on A/B optimization reminded me of a genetic algorithm-based A/B testing framework mentioned not too long ago: http://ejohn.org/blog/genetic-ab-testing-with-javascript/ (I'd link to Genetify itself, but there's no homepage, just the demo)
An interesting thought: Why hasn't this caught on? Machines are good at exactly the things A/B testing aims at: measuring performance, permuting a test-matrix, and reporting on the results. This is not to say Genetify is the answer, but rather that I rarely hear of conversion optimization from developers.